2016-05-04 7 views
1

Ich lerne, SQL und haben mit dem Erstellen einer Abfrage für diese Aufgabe wurde:SQL - alle Join-Anweisung?

-write einer select alle JOIN-Anweisung auf userDb.user und userDb.advertiser basierend auf network_id wo user_name = ‚Finanzen‘

jedoch Kann ich nichts finden, was eine gemeinsame Aussage nahelegt, so dass ich verwirrt bin, was ich tun soll?

Mein Versuch bisher funktioniert jedoch nicht!

SELECT userDB.user.network_id, 
     userDB.advertiser.network_id 
FROM userDB.user 
INNER JOIN userDB.advertiser ON userDB.user.network_id = userDB.advertiser.network_id 
WHERE network_id = user_name = 'finance' 

Was ist der korrekte Code und die Erklärung der Ausfälle?

+0

Sie vermissen etwas in where-Klausel "WHERE network_id = user_name = 'finance';" –

Antwort

3

Ok, die Abfrage, nach der Sie suchen, ist ungefähr so;

Sie waren fast da. Die Änderungen, die ich vorgenommen habe, sind Tabellenalias '(' u 'und' a '), die es wert sind, zu lesen. Ihre where-Klausel hatte auch zu viele Operatoren.

Die SELECT * ist das, was ich denke, sie von SELECT bedeuten ALL

Lassen Sie mich wissen, wenn Sie über eine der Abfrage nicht verstehen, und ich werde Ihnen gerne behilflich sein.

+1

Ist es ohne Alias ​​möglich? – Speedychuck

+0

sicher, einfach den Tabellennamen eingeben. Der Grund, warum ich das getan habe, ist, dass ich nicht sicher bin, ob userDB der Datenbankname oder der Schemaname ist. Wie auch immer, es ist normalerweise nicht notwendig. Die Namenskonvention lautet ServerName.DatabaseName.SchemaName.TableName, obwohl Sie nur das letzte oder die letzten beiden oder die letzten drei oder alle davon verwenden können. –

+1

SELECT * FROM userDB.user INNER JOIN userDB.advertiser ON user.network_id = advertiser.network_id WHERE user.user_name = 'Finanzen' Das funktionierte. Cheers für die Hilfe, ich werde das als Antwort markieren. – Speedychuck