SQL-Abfrage

Methos

Erfahrenes Mitglied
kann man die Abfrage evtl. vereinfachen?

tabelleA
-id
-titel

tabelleB
-beschreibung_id
-beschreibung

Zu einem titel kann es mehrere Beschreibungen geben. Ich würde jetzt hier zuerst den titel Abfragen und danach mit einem zweiten select die Beschreibungen.

Könnte man das evtl. auch in einem select zusammenfassen oder würde das nicht soviel Sinn machen?
 
Erstens - in TabelleA würde ich nen Timestamp einbauen, damite auch weißt, welcher der letzte Beitrag war

Zweitens
SELECT `tabelleA`.*, `tabelleB`.`beschreibung` FROM `tabelleA` LEFT JOING `tabelleB` ON `tabelleA`.`id` = `tabelleB`.`beschreibung_id` ORDER BY `id` DESC LIMIT 1

(damit holste dir id, titel, beschreibung aus den tabellen, sortierst die ids umgekehrt (damit der neuste oben ist) und nimmst mit limit 1 nur einen (den letzten))...
 
Ok das klappt schon, aber wenn jetzt z.b. 2 Beschreibungen existieren, dann krieg ich damit zwar alle raus, aber eben auch mit den produkt Daten.

Die Zeit nehm ich schon noch mit auf, wollts hier nur nicht mit reinschreiben, damits nicht kompliziert wird ;)
 
ok ich versuchs mal:

In der Tabelle A existiert ein Eintrag. Zu diesem Eintrag kann es allerdings mehrere Beschreibungen geben.

Wenn ich die Abfrage dafür so gestalte wie oben, dann kriege ich ja auch immer zusätzlich zu den 2 Beschreibungen noch den Titel zurück.

Ich hoffe du weißt nun wie ich das meine?
 
Ich glaube Du meinst das ...
Code:
SELECT tabelleB`.`beschreibung_id`,`tabelleB`.`beschreibung` FROM `tabelleA` LEFT JOING `tabelleB` ON `tabelleA`.`id` = `tabelleB`.`beschreibung_id` ORDER BY tabelleB`.`beschreibung_id` DESC

müßte eigentlich funktionieren !

Gruß
tino
 
ne, das scheint leider so nicht zu klappen.
Hab das Problem auch noch bei weiteren n:m
Ich kann zwar alles mit einem select Abfragen, aber ich brauch hier eigenltich immer nur den ersten Eintrag und nicht alle.

Aber da werd ich wohl zwei seperate SELECTs machen müssen.
 
Zurück