Guten Tag,
ich habe mal wieder eine Frage an die Experten hier.
Momentan nutze ich für die Angebote eines Marktplatzes zwei Tabellen, da es zwei Arten von "Waren" gibt, die verkauft werden können. Die Waren stehen dabei nichti in einer Tabelle, sondern sind ebenfalls aufgesplittet.
Momentan sieht das also so aus:
Nun möchte ich die beiden Marktplatz-Tabellen gerne zusammenführen und in einer zusätzlichen Spalte die Art der Ware angeben um anhand dieser auf die richtige Waren-Tabelle zu joinen.
Die Frage ist, wie ich das mache. Vor allem muss von der Warentabelle nochmal auf eine andere Tabelle gejoint werden. Das ganze könnte also etwas komplexer ausfallen. Bietet MySQL Mittel oder Wege, eine Tabelle nur unter einer bestimmten Bedingung zu joinen?
Mein erster Ansatz war, zunächst einmal beide Warentabellen zu joinen und die richtigen Werte anhand der `type`-Spalte auszuwählen.
Allerdings kann ich mir vorstellen, dass das nicht sonderlich performant und elegant ist.
Gibt es bessere Lösungen oder sollte ich besser bei meinen zwei Tabellen bleiben?
Danke schon mal im Vorraus,
paddya
(Ich hoffe, ich habe mich verständlich ausgedrückt
.)
ich habe mal wieder eine Frage an die Experten hier.
Momentan nutze ich für die Angebote eines Marktplatzes zwei Tabellen, da es zwei Arten von "Waren" gibt, die verkauft werden können. Die Waren stehen dabei nichti in einer Tabelle, sondern sind ebenfalls aufgesplittet.
Momentan sieht das also so aus:
Code:
Markplatz für Ware A Marktplatz für Ware B
| INNER | INNER
| JOIN | JOIN
\_/ \_/
Tbl. in der W. A hinterlegt ist Tbl. in der W. B hinterlegt ist
Nun möchte ich die beiden Marktplatz-Tabellen gerne zusammenführen und in einer zusätzlichen Spalte die Art der Ware angeben um anhand dieser auf die richtige Waren-Tabelle zu joinen.
Die Frage ist, wie ich das mache. Vor allem muss von der Warentabelle nochmal auf eine andere Tabelle gejoint werden. Das ganze könnte also etwas komplexer ausfallen. Bietet MySQL Mittel oder Wege, eine Tabelle nur unter einer bestimmten Bedingung zu joinen?
Mein erster Ansatz war, zunächst einmal beide Warentabellen zu joinen und die richtigen Werte anhand der `type`-Spalte auszuwählen.
Code:
SELECT o.id IF(u.type = 'a', a.name, b.name) AS object_name FROM offers AS o LEFT JOIN ware_a AS a ON o.offer_object = a.id LEFT JOIN ware_b ON o.offer_object = b.id
Allerdings kann ich mir vorstellen, dass das nicht sonderlich performant und elegant ist.
Gibt es bessere Lösungen oder sollte ich besser bei meinen zwei Tabellen bleiben?
Danke schon mal im Vorraus,
paddya
(Ich hoffe, ich habe mich verständlich ausgedrückt