2016-11-01 3 views
1

Ich benutze MS Sql Server und ich habe 2 Tabellen wie unten;Wie bekomme ich alle Felder außer einem mit innerem Join?

School(scid, name, address, ....) 
Student(scid, studentName, studentSurname, ....) 

Was ich abfragen möchte, ist;

SELECT * FROM Student ST INNER JOIN School SC ON ST.scid = SC.scid; 

Aber ich will nicht doppelt SCID-Feld als Ergebnis erhalten (es gibt scid und scid_1). Ich meine

SELECT *(except School.scid) FROM Student ST INNER JOIN School SC ON ST.scid = SC.scid; 

Gibt es eine Möglichkeit, alle Felder außer einem zu bekommen?

+0

Wenn Sie alle Felder aus 2 oder mehr Tabellen verwenden, kann es sinnvoll sein, eine Ansicht zu erstellen und alle benötigten Spalten explizit zu definieren. Dann müssen Sie eine einfache Auswahl in Ihrer Anwendung durchführen, z. B. 'Select * from StudentFullView' – navigator

Antwort

1

Leider die einzige Möglichkeit, dies zu tun, ist explizit benennen Sie alle Felder. Die einzige Verknüpfung, die Sie nehmen könnte, ist die * für die einzelnen Tabellen verwenden:

SELECT ST.*, School.Field1, School.Field2, etc 
    FROM Student ST INNER JOIN School SC ON ST.scid = SC.scid; 

Wenn Sie diese Menge haben, können Sie SQL-Eingabeaufforderung von RedGate prüfen, mit, sie einige Funktionen, die es einfacher für die Arbeit mit SQL-Datenbanken machen .

Verwandte Themen