Ich habe mehrere Datenbanken (nobu
und bu
) mit exakt gleichen Tabellen (eine ist nur eine Sicherung der anderen).
Ich brauche Werte aus einer Tabelle aus beiden Datenbanken, um sie mit anderen Tabellen zu verbinden, dann verwende ich offensichtlich eine UNION
. Die Sache ist, einige Produkte haben unterschiedliche Namen in den Tabellen von bu
und nobu
.
Ich habe dann versucht, nur eine Datenbank über diese Tabelle zu wählen (ich verwendete nobu
, da es die neueste ist), aber ich habe festgestellt, dass einige Produkte nicht in nobu
sind, aber tatsächlich in bu
sind (was es kein Backup mehr macht).Machen Sie eine "LINKE UNION" Abfrage
Der Teil der Abfrage, in der ich brauche das wie folgt aussieht:
Damit ich Duplikate
... INNER JOIN (SELECT * FROM nobu.dbo.product UNION SELECT * FROM bu.dbo.product) AS product
ON [...] INNER JOIN (SELECT * FROM nobu.dbo.name UNION SELECT bu.dbo.name) AS name
ON product.key = name.id ...
Damit erhalte ich einige der Produkte mit NULL
Namen, da es existiert nicht auf nobu
... INNER JOIN (SELECT * FROM nobu.dbo.product UNION SELECT * FROM bu.dbo.product) AS product
ON [...] INNER JOIN (SELECT * FROM nobu.dbo.name) AS name
ON product.key = name.id ...
Ich wollte wissen, ob es eine Möglichkeit gibt, eine LEFT UNION
oder etwas ähnliches durchzuführen, um alle Werte von nobu
zu erhalten, und wenn es keine Daten gibt, nehmen Sie die von bu
, ohne die Duplikate zu bekommen (da sie unterschiedlich sein können Namen in beiden Datenbanken).
Verwenden 'GROUP BY' Schlüsselwort in Ihrem Unter Abfrage nach den Parametern, die Sie eindeutig abrufen möchten. –