SQL JOIN. Spalte der JOIN-Bedingung nicht zweimal ausgeben!

hydra

hydra

praetorian
SQL:
Code:
SELECT t1.*, t2.* FROM tblmodelldaten AS t1, tblfahrzeugdaten AS t2 WHERE t1.ModellNr = t2.ModellNr;

wenn ich die zwei tabellen auf diese Weise verbinde, wird die Spalte der Join Bedingung (ModellNr) 2x ausgegeben.
Wie kann ich das verhindern?
 
hi

also soweit meine sql-kenntnisse reichen, würde ich sagen das du das angibst was du ausgegeben haben willst. soweit ich weiß kannst du nicht die modellnr einfach so ausblenden.

gruss phlekk
 
hm. unangenehm wirds dann aber wenn du 20 Spalten hast...
irgendetwas muss es geben.
Wer weiß was?
 
Ich schließe mit phlekk an.
Du solltest niemals * benutzen, weil es meist Performanceeinbußen mit sich bringt, ausserdem ist es nicht wirklich sauber.
Zwar ist es mehr zu schreiben, alle Spalten anzugeben, aber es ist wesentlich übersichtlicher und du weißt auch noch in ein paar Jahren, was du überhaupt genau aus den Tabellen holst.

Ich würde ausserdem nicht so einen Microsoft-Join benutzen (der wird manchmal wirklich so genannt, weil der MS-SQL-Server lange nur diese Art konnte), sondern einen Inner Join:
Code:
SELECT t1.ModellNr, t1.bla, t2.blubb
FROM tblmodelldaten AS t1
INNER JOIN tblfahrzeugdaten AS t2 
ON t1.ModellNr = t2.ModellNr
So kann man auch noch ein schön sauberes WHERE anschließen.
 
Sonst geht auch noch "SELECT DISTINCT ...". Dann ignoriert er doppelte Resultate.

Gruss
Joel
 
noch etwas komfortabler geht es ueber USING( ModellNr), wenn die Attribute den gleichen Namen besitzen.

wenn ich die zwei tabellen auf diese Weise verbinde, wird die Spalte der Join Bedingung (ModellNr) 2x ausgegeben.
Dafuer gibt es in MySQL keine Loesung. Ich weiss nicht, ob es so im SQL Standard formuliert ist, aber es werden beim Natural Join die gleichnamigen Spalten verbunden, dass keine Doppeldeutigkeiten auftreten. Bzw. bei einem Inner Join, wenn es nur eine gleichnamige Spalte gibt. Ansonsten waere eine referenzierung ueber die Tabellennamen moeglich.

Nur in MySQL meines Wissens nicht. Zumindest nicht ohne weiteres.

mfg
 

Ähnliche Themen

CentOS 5.8 –SQL Abfrage– HTML wird generiert und daraus müssen mehrere Mails versendet werden

PostgreSQL und Spaltenalias

Joins

Tabellen joinen - SUM()

SQL Abfrage, JOIN-Problem

Zurück
Oben