inner-join-Feld in mehrere Spalten in der Tabelle

Ich habe SQL Tabelle, hält Käufer personenbezogene Daten, wie Vorname, Nachname, OGCard;
OGCard - Feld, das angibt, clients persönlichen Kartennummer.

Als Nächstes habe ich die Tabelle mit dem Namen-Karten, die Daten enthält etwa zehn Artikel, die gekauft wurden, in folgendem format: OGCard, Item1ID,...,Item10ID,Item1Quantity,...,Item10Quantity

Und in der Tabelle Artikel, die ich bekam solche Struktur ItemID, ItemName

Möchte ich, um alle Einkäufe aus CardNumber

Ich denke, ich sollte etwas tun, dass

SELECT Buyers.FirstName, Items.Name, Cards.Item1Quantity
FROM Buyers
INNER JOIN Cards ON Buyers.OGCard=Cards.OGCard
INNER JOIN Items ON Cards.Item1ID=Items.ItemName
WHERE OGCard=13451

Ich auf diese Weise können Sie den Namen der ersten Artikel und es ist Menge. Allerdings kann ich nicht ausführen, den gleichen join-Spalte Item2ID, und so weiter. Könnten Sie mir empfehlen eine Lösung?

  • Können Sie das Design Ihrer Datenbank? Mit Spalten benannt, foo1, foo2, ..., foo10 ist fast immer eine schlechte Idee.
  • Ich wirklich brauchen, um haben solche Tabellen Struktur für die Normalisierung
  • Es ist nicht normalisiert. Siehe en.wikipedia.org/wiki/First_normal_form "Wiederholenden Gruppen in Spalten".
InformationsquelleAutor seeker | 2012-05-12
Schreibe einen Kommentar