PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : über 2 tabellen sortieren


OutsiderWorld
09.07.2003, 08:59
hallo,

ich habe z.B. eine tabelle mit folgender struktur

"ID, name, artikelnr, farbe, groesse"

und eine andere mit folgender struktur

"ID, artikelnr"

bei der ersten tabelle werden in die spalte "artikelnr" immer die IDs aus der zweiten tabelle eingetrage, denn diese enthält alle artikelnummern - unsortiert

wie kann ich jetzt die erste tabelle nach artikelnr sortieren, auf- bzw. absteigend ...

wenn ich die erste tabelle mit ORDER BY artikelnr auslese, dann wird sie logischerweise nach den IDs in der spalte "artikelnr" sortiert ....

hat da jemand eine idee?

danke

OutsiderWorld


MaSie
09.07.2003, 09:36
Deine Tabellen sind überhaupt nicht gut durchdacht, da Du eine unnötige Tabelle hernimmst oder zumindest ergibt es keinen Sinn, wenn Du in ein Feld Artikelnummer eine ID einträgst und nicht gleich die ID.

Wieso schreibst Du nicht gleich in Dein Tabelle1.artikelnr die Artikelnummer rein und in tabelle1.id die ID?

Dennoch gibt es für Dein Problem natürlich auch eine Lösung, welche Du aber nur einsetzen solltest, wenn Du nicht mehr großartig daran weiterarbeiten wirst. Ansonsten würde sich eine DB-Neukonzeption eher anbieten.

Select tabelle2.artikelnr, tabelle1.id, tabelle1.artikelnr, tabelle1.name, tabelle1.farbe, tabelle1.groesse from tabelle1, tabelle2 where tabelle1.artikelnr=tabelle2.id order by tabelle2.artikelnummer

(sollte so gehen, habs aber nicht ausprobiert)

Natürlich könnte man jetzt noch wegen Performance und kartesischem Produkt nen outer join einbauen, aber ich glaube, daß sich die DB den selber zusammenstellt bzw. wird der aufgrund deiner wahrscheinlich eher kleineren Tabellen nicht großartig was bringen.


MfG MaSie

horrorgupppy
09.07.2003, 09:37
tabelle1
"ID, name, artikelnr, farbe, groesse"
tabelle2
"ID, artikelnr"

SELECT tab1.* FROM tabelle1 tab1, tabelle2 tab2 WHERE tab1.artikelnr = tab2.ID ORDER BY tab2.artikelnr;

du kannst das auch mittels JOIN machen

SELECT tab1.* FROM tabelle1 LEFT JOIN tabelle2 ON tabelle1.artikelnr=tabelle2.ID ORDER BY tabelle2.artikelnr;