Zitat von
Michaela_:
Ich habs zumindest mit einer zweiten Tabelle geschaft. Und zwar so:
Code:
Query.SQL.Text := 'SELECT Texte1.Info TXT1
FROM Texte1
INNER JOIN Artikel
ON Texte1.IDX = Artikel.TextID1
WHERE Artikel.Code = 'B'
Wie sieht das mit mehr als einer Tabelle aus. Ist INNER JOIN dann noch möglich?
Du bist auf dem richtigem Weg.
Aber du solltest LEFT OUTER JOINS verwenden, denn sonst kann es dir passieren, dass
Zeilen aus der Artikeltabellen verloren gehen !
SQL-Code:
SELECT Artikel.IDX, Texte1.Info TXT1, Text2.Info TXT2, Text3.Info TXT3
FROM Artikel
LEFT OUTER JOIN Texte1 ON Artikel.TextID1=Texte1.IDX
LEFT OUTER JOIN Texte2 ON Artikel.TextID2=Texte2.IDX
LEFT OUTER JOIN Texte3 ON Artikel.TextID3=Texte3.IDX
WHERE Artikel.Code = 'B'
Es ist natürlich ungeschickt die Nachschlagetexte in 3 verschiedenen Tabellen mit gleicher Struktur unterzubringen.
Da wäre eine Tabelle mit einem zusätzlichen Feld schlauer gewesen:
Code:
Tabelle NTexte
======================
IDX Int (NOT NULL)
TextTyp Int (NOT NULL)
Info varchar(200)