2016-11-03 2 views
0

ist Also habe ich zwei Tabellen A und B, beide Tabellen haben eine Spaltenadresse. Tabelle A hat Spalte id1 und Tabelle B Spalte id2. Ich möchte die Adresse Spalte (es kann Tabelle B sein), wenn die Werte in ID1 und ID2 Spalten identisch sind. Wie kann ich das im SQL-Befehl tun? Es lohnt sich, zu erwähnen, dass, wenn diese Spalten identisch sind, die Adressen auch gleich oder ähnlich sind, so dass die Adresse von jeder Tabelle sein kann. Ich bin sehr neu in SQL und Ihre Hilfe wird sehr geschätzt. Vielen Dank im VorausAusgabe von zwei Tabellen (Tabelle A und b), wenn Spalte A aus Tabelle A gleich Spalte B aus Tabelle B

+0

aktualisieren Sie Ihre Frage zeigen Sie das Schema der Tabellen ,, ein richtiges Datenbeispiel und das erwartete Ergebnis ... – scaisEdge

Antwort

0

du versuchen sollte:

Select address 
from tablea as a, table b as b 
where b.id =a.id 
+0

Bitte beenden Sie die alten, veralteten und zerbrechlichen impliziten Joins in der Where-Klausel und beginnen mit einem expliziten 'JOIN'-Operator . –

0

Ich gehe davon gibt es eine Chance, dass die Adresse in Tabelle 1 fehlt, sonst wäre es nur eine Frage der sein, dass Feld auswählen. Ich habe einen Fall Aussage, dass zu handhaben für alle Fälle (heh), aber wenn nicht, können Sie ersetzen gerade das ganze Stück mit a.address

Select a.id1, 
    case when a.address is not null 
     then a.address 
     else b.address end as new_address. 
from Table1 A, Table2 B 
where a.id1 = b.id2 

Außerdem, wenn Sie eine Kombination aus Innen haben und Outer-Joins passiert (oder nur eine Menge Joins), dann sollten Sie explizitere Join-Kriterien hinzufügen.

+0

Bitte beenden Sie die Verwendung der uralten, veralteten und fragilen impliziten Joins in der where-Klausel und verwenden Sie einen expliziten 'JOIN'-Operator. –

+0

Es gibt nichts Zerbrechliches an einem impliziten Join, wenn es an der richtigen Stelle verwendet wird. Join-Operatoren sind nur erforderlich, wenn ein Outer-Join ausgeführt wird. –

+0

Implizite Joins ** sind ** zerbrechlich, weil es leicht ist, mit einem Cross-Join zu enden, weil eine fehlende Join-Bedingung nicht zu einer Fehlermeldung führt. Es ist unmöglich, versehentlich einen Cross-Join mit expliziten JOIN-Operatoren zu schreiben. Schau dir das an: http://hastebin.com/tayimobapo.sql und sag mir, wie lange du herausfinden musst, ob eine Join-Bedingung fehlt oder nicht. –

Verwandte Themen