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

Beitrag lesen

Hallo Rolf,

Nee, hab ich berücksichtigt, nur habe ich die Tabelle unachtsamerweise artikel statt table1 genannt. Steht doch drüber: „Artikel im Warenkorb holen“.

Stimmt. Nehme alles zurück und behaupte fortan das Gegentum 😉

Deine Query1 tut das, was meine Query auch tut, ich hab nur noch ein paar Daten aus der table3 dazugepinnt (was einem Warenkorb entspricht: 7 Unterhosen, 9 Socken, etc) - aber da deine Daten mutmaßlich ganz anders aussehen, ist das reiner Spekulatius zu Ostern.

Ja. T3 ist eine reine Zuordnungstabelle (t1_id, t5_id).

Der Unterschied ist nur, dass Du m.del in der Where Bedingung hast, d.h. du liest gelöschte Artikel nicht mit. Aber sagtest Du nicht, dass Du die trotz Löschung mit lesen wolltest?

In der ersten Query muss es mit hinein, weil ich ansonsten Artikel aufliste, die ausgelistet sind. Es sollen nur die Bewertungen angezeigt werden, nicht die Artikel selber. Hört sich erstmal doof an, ist aber schlußendlich logisch, wenn man die (viel zu kompliziert zu erklärende RL-Lösung kennt)

Beim Lesen der Artikelbewertungen brauchst Du table1 nicht, wenn Du die benötigten IDs in der Artikelliste hast. Du machst einen JOIN von table1 und table2, verwendest aber keine Daten aus table1. Weder im SELECT noch im WHERE. Wozu also Joinen?

Sorry, ich muss hier joinen, weil die Query verkürzt ist, ich aber "in Echt" doch auch noch Daten aus T1 brauche.

Allerdings hast Du da ein bisschen an den Spaltennamen rumgemacht, das war vorher anders. Du hast jetzt t1_id und t2_id - ist das die Artikel-ID und die Bewertungs-ID? Dann solltest Du dg.t1_id mit selektieren.

Ich habe das extra gemacht, damit die Zuordnungen der Tabellen zueinander und die vorhandenen Spalten in den Tabellen klarer werden.

Wenn Du das gemacht hast, kannst Du

  • das Array mit Artikeln im PHP über die Artikel-ID schlüsseln
  • für jede gefundene Bewertung den Artikel-Eintrag rausholen und die Bewertung dort an eine Bewertungen-Array anpappen....

Fertig. Und das gibst Du dann so, wie Du es brauchst, als HTML aus.

Stimmt, das muss dann php übernehmen.

Danke für Deine Hilfe und Grüße,

Jörg