2010-04-05 15 views
13

Ich habe zwei Tabellen: Tabelle1, Tabelle2. Tabelle 1 hat 10 Spalten, Tabelle 2 hat 2 Spalten.Wählen Sie richtige Spalten aus JOIN-Anweisung

SELECT * FROM table1 AS T1 INNER JOIN table2 AS T2 ON T1.ID = T2.ID 

Ich möchte alle Spalten aus Tabelle1 und nur 1 Spalte aus Tabelle2 auswählen. Ist es möglich, dies ohne Aufzählung aller Spalten von table1 zu tun?

Antwort

14

Ja, können Sie wie folgt vorgehen:

SELECT t1.*, t2.my_col FROM table1 AS T1 INNER JOIN table2 AS T2 ON T1.ID = T2.ID 
+0

Danke für eine Antwort! –

-1

Verwendung table1.* anstelle aller Spalten von Tabelle 1;)

4

Auch wenn Sie die t1.*, t2.col1 Sache tun kann, würde ich es nicht in der Produktion empfehlen Code.

Ich würde niemals verwenden Sie eine SELECT * in Produktion - warum?

  • Sie sagen SQL Server alle Spalten zu bekommen - Sie wirklich Sie, wirklich alle von ihnen benötigen?
  • indem Sie nicht die Spaltennamen angeben, muss SQL Server selbst herausfinden - es muss das Data Dictionary konsultieren, um herauszufinden, welche Spalten vorhanden sind, die ein wenig Leistung kostet
  • am wichtigsten: Sie don Ich weiß nicht, was du zurückbekommst. Plötzlich ändert sich die Tabelle, eine oder zwei weitere Spalten werden hinzugefügt. Wenn Sie irgendeinen Code haben, der z.B. die Sequenz oder die Anzahl der Spalten in der Tabelle, ohne explizit für die Überprüfung des Code kann Brems

Meine Empfehlung für Produktionscode: immer gibt genau die Spalten, die Sie wirklich brauchen - und sogar (keine Ausnahmen!) Wenn Sie alle benötigen, buchstabieren Sie es explizit aus. Weniger Überraschungen, weniger Bugs, nach denen gesucht wird, wenn sich jemals etwas in der zugrunde liegenden Tabelle ändert.

+1

Hmm, OK, ich habe eine Tabelle ** Tabelle1 **. Es enthält 10 Spalten. Welche SELECT-Anweisung wird schneller sein? 1. SELECT * FROM TABLE1 2. WÄHLEN SIE COL1, COL2/* BIS ZU ZEHN */FROM TABLE1 Und was wird verständlicher sein? –

+1

Der explizit alle 10 Spalten wird sowohl schneller und verständlicher sein. –

+1

Warum wird die explizite Spaltenliste schneller sein? – amwinter

Verwandte Themen