Jörg: mysql - 2 Queries oder doch eine?

Beitrag lesen

Hallo 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

-- 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

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 (oder meintest Du das mit Deiner Eingangsfrage nach dem Warenkorb?).

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 mir noch fehlt, ist der Zusammenhang aus Query1+2, also die Zuordnung der Bewertungen zum Artikel.

Jörg