Hallo Jörg und André,
also ich denke nicht, dass Eure beiden Ideen so funktionieren, wie ich mir das vorstelle. Vielleicht habe ich mich nur zu unklar ausgedrückt. Machen wir mal ein Beispiel:
In der Tabelle 'news' steht z.B.:
ID|Titel|Inhalt
73|Testnews|Hallo Welt!
Zu diesen News gebe es jetzt zwei Links. Das sieht das dann in der Tabelle 'links' so aus
NewsID|Link|Titel
73|www.seite1.de|Seite1
73|www.seite2.de|Seite2
Wenn ich das jetzt so (Variante André)
> SELECT
> *
> FROM
> news AS n
> LEFT JOIN
> links AS l
> ON
> (n.ID=l.NewsID)
oder so (Variante Jörg)
> SELECT * FROM news,links
> WHERE links.NewsID = news.ID;
aufrufe (beide Varianten schon zuvor getestet), dann tut es nicht das, was ich will, das es tut. Das mit den JOINS funktioniert imho dann und nur dann so wie es soll, wenn es zu einem Eintrag in einer Tabelle auch genau einen anderen Eintrag in einer anderen Tabelle gibt. Wenn ich das richtig sehe, würden in Euren Codeschnipseln die News mit der ID 73 gleich zwei mal in die Ergebnistabelle eingetragen mit jeweils einem der Links. Und das ist denke ich nicht Sinn der Sache. Was ich aber gerne hätte ist, dass beide Links in einem Datensatz zu den News einmal der Ergebnistabelle drinstehen.
nachdem ich JOINS für mich entdeckt habe - die sind echt toll ;o)
Nur leider auch toll teuer (also performanz-technisch)
- aber wenn man's in Grenzen hält...
Echt? Wieso das? Ich meine immer noch besser als zwei MySQL Abfragen derart
SELECT * FROM news;
und dann in einer Schleife die alle News durchläuft jeweils eine Anfrage
SELECT * FROM links WHERE NewsID = $ergebnis['ID'];
zu machen. Wie löst Du das solche Probleme denn? Bzw. wie würdest Du es machen?
LG
MightyMike