mysql - 2 Queries oder doch eine?
bearbeitet von JörgHallo Rolf,
> Den Warenkorb selbst wirst Du aber auch brauchen, oder?
Jain, denn dort ist der Ausgangspunkt. Er ist insofern vorhanden.
Auch $artikelliste ist bereits vorhanden, weil als Funktion hinterlegt und bereits an dieser Stelle im Programm genutzt.
>
> Also
>
> ~~~sql
> -- Allg. Daten zum Warenkorb einlesen
> SELECT w.mid, w.foo, w.bar, w.baz
> FROM table4 w
> WHERE w.mid = 4780
>
> -- Artikel im Warenkorb holen
> SELECT s.anzahl, s.dings, s.bums, a.id, a.name, a.del, foo, bar, baz
> FROM table3 s JOIN artikel a ON s.id = a.id
> WHERE s.mid = 4780
> ~~~
>
> An dieser Stelle solltest Du die Artikelliste übernehmen und die Artikel-IDs zu einer kommaseparierten Liste machen
>
> ~~~sql
> SELECT dg.id, dg.bla, dg.blub, dg.hui
> FROM table2 dg
> WHERE dg.id IN ($artikelliste)
> ~~~
>
Nicht bös sein, aber ich glaube, so wird das eher nichts.
Du hast die Daten aus Tabelle1 unberücksichtigt, die sind aber wichtig.
Meine Idee:
~~~
Query 1: (ermittelt die Artikel)
SELECT m.t1_id, m.bla, m.blub, m.hui
FROM table1 m
JOIN table3 t3 ON m.t1_id = t3.t1_id
WHERE t3.mid = 4780
AND m.del != 1
Query 2: (ermittelt die Artikelbewertungen)
SELECT dg.t2_id, dg.bla, dg.blub, dg.hui
FROM table 1 m
LEFT JOIN table2 dg ON m.t1_id = dg.t1_id
WHERE dg.t1_id IN ($artikelliste)
AND dg.del != 1
~~~
Was m ir noch fehlt, ist der Zusammenhang aus Query1+2, also die Zuordnung der Bewertungen zum Artikel.
Jörg