2009-05-13 16 views
4

In MySQL können Sie das Schlüsselwort USING in einem Join verwenden, wenn Sie Spalten aus verschiedenen Tabellen mit demselben Namen verknüpfen. Diese Abfragen führen beispielsweise zum gleichen Ergebnis:SQL Server-Äquivalent von MySQL USING

SELECT * FROM user INNER JOIN perm USING (uid) 
SELECT * FROM user INNER JOIN perm ON user.uid = perm.uid 

Gibt es in SQL Server eine entsprechende Verknüpfung?

Antwort

13

Nö, haben zu verwenden:

SELECT * FROM user INNER JOIN perm ON user.uid = perm.uid 
5

Nein, SQL Server nicht diese Art von Verknüpfung nicht unterstützt.

Ich möchte darauf hinweisen, dass selbst wenn dies der Fall ist, Verknüpfungen wie diese KEINE GUTE IDEE sind. Ich habe kürzlich an einer Datenbank gearbeitet, wo die Entwickler es für eine gute Idee hielten, die *= and =* Shortcuts für RIGHT JOIN und LEFT JOIN zu verwenden. Gute Idee, bis jemand die SQL-Kompatibilitätsstufe auf 90 hochstufte. Dann wurde es eine extrem schlechte Idee.

Also, lernen Sie von uns. Shortcuts sind schlecht. Ein bisschen mehr Tipparbeit hat noch niemanden getötet.

+0

Meinten Sie '* =' und '= *'? SO verwendet Sternchen zum Formatieren. –

+0

Ja, ich meinte * = und = * - Danke Matt –

+0

@MattSolnit 'USING (uid)' ist keine Abkürzung für 'ON user.uid = perm.uid', also kann man nicht sagen, dass' USING' verwendet wird eine gute oder eine schlechte Idee – Vexator

1

Auch würde ich hinzufügen, keine wilden Zeichen, "*" in Ihrer Select-Anweisung verwenden - explizit den Spaltennamen angeben.

+0

Wahr, aber ich wollte nur eine kurze Abfrage, um die Verwendung von USING zu veranschaulichen. Die SELECT-Details hier sind irrelevant. – Dinah