Kreuzprodukt: HILFE

Kalma

Erfahrenes Mitglied
Hey,


ich habe ein Problem mit meinem Kreuzprodukt. Ich will einfach nur aus 3 Tabellen auslesen und nicht für jede Abfrage neue Querys' machen.


Ich habe schon gesucht, und eine Abfrage über 2 Tabellen auch schon hinbekommen, aber mit 3 Tabellen wird das nix.

Wer kann helfen?

Hier mein Query für 2 Tabellen:
PHP:
$query	= 	'select *, COUNT(`news_kommentare`.`komm_news_id`) as `count` 
                     from news left join news_kommentare  on 
                     (news.news_id = news_kommentare.komm_news_id) group by news.news_id desc';


MfG
David
 
Das kommt darauf an was für Daten du aus den Tabellen lesen willst. Es wird unterschieden in left, right, inner und outer joins je nach Join werden dir die Daten wiedergegeben. Wenn du also eine Verbindung aus 2 Tabellen haben willst und alle Einträge aus einer Tabelle haben willst dann machst du das so:
Code:
SELECT.... FROM tabelle1 LEFT JOIN tabelle2 on ....
Jetzt würdest du alle Inhalte aus tabelle1 erhalten. Willst du hier dann noch eine dritte Tabelle reinholen erweiterst du einfach deinen Query:

Code:
SELECT * FROM (tabelle1 AS t1 LEFT JOIN tabelle2 AS t2 ON t1.id=t2.id) LEFT JOIN tabelle3 AS t3 ON t1.id=t3.id
So würdest du nur die Daten aus tabelle 1 erhalten und halt die Werte von tabelle2 und 3 die du mit abfragst. Nun mußt du entscheiden welche Art von Join du haben willst. Danach solltest du erstmal googlen.

MFG
 
HI,

ich werde wohl mal googlen müssen... in meinem Buch, weiß nicht, das tuts nicht. Auf jeden Fall, wenn ich's umbaue.

Hier dass, was ich auslesen will. Ich brauche alle Daten aus der Tabelle news:
Code:
Struktur
news_id
news_autor
news_titel
news_text
news_datum

Dann muss ich die Kommentare zählen, die zu diesen News gehören. Diese kommen aus der Tabelle "news_kommentare"
Code:
Struktur
komm_id
komm_news_id
komm_name
komm_kommentar
komm_datum

Zu den News brauch ich jeweils noch den Autor, der die News geschrieben hat. In der Tabelle "News" wird dann einfach die UserID des jeweiligen Users eingetragen, und aus der Tabelle 'user' ausgelesen.
Code:
Struktur:
user_id
user_nickname
user_passwort
user_email



Ich werde mal suchen, aber vielleicht kann ja schon vorher einer was sagen^^ (Bsp)


P.s.: Hier mal das Auslese-Verfahren aus meinem Buch:
PHP 5 & MySQL 5 hat gesagt.:
Drei und mehr Tabellen verknüpfen
Code:
SELECT customers.name from customers, orders, order_items, books WHERE customers.customerid = orders.customerid AND orders.orderid = order_items.orderid AND order_items.isbn. = books.isbn AND books.title LIKE '%PHP%'

So stehts in meinem Buch, ist jedoch auf 4 Tabellen bezogen. Ich kriegs aber irgendwie nicht hin, diese Abfrage umzubauen.
Aber ich bleib drann (!)
 
Zurück