[JOIN]mehr als einen datensatz auslesen

Devil Noxx

Erfahrenes Mitglied
Hallo,

also ich habe 2 Tabellen für meine News
das wären:

news
und
news_links

ist es möglich mit einer Abfrage die News auszulesen inkl. aller Links?

Ich hab zwar schon eine Abfrage, aber da bekomm ich immer nur genau einen Link zurück, und nicht alle die in der tabelle stehen.

hier mal die abfrage:
Code:
SELECT
    n.Ntitle AS title,
    n.Ncontent AS content,
    n.Ndate AS date,
    L.NLname AS linkname,
    L.NLurl AS linkdesc
FROM
    news AS n
LEFT JOIN
    news_links AS L
ON
    n.NID = L.NL_NID

und hier noch die Tabellenstruktur

news:
Code:
+-----+-------+--------+----------+-------+
| NID | N_UID | Ntitle | Ncontent | Ndate |
+-----+-------+--------+----------+-------+
N_UID ist aber bei der abfrage uninterresant, da diese für etwas andres benötigt wird

news_links:
Code:
+------+--------+-------+--------+
| NLID | NL_NID | NLurl | NLname |
+------+--------+-------+--------+
 
Servus!

Vielleicht funktioniert es mit:

Code:
SELECT news.nid, news.ntitle, news.ncontent, news.ndate, news_links.nlurl, news_links.nlname
FROM news_links INNER JOIN news ON news_links.nl_nid = news.nid;

Gruß Tom
 
Müßte das nicht so sein?

SELECT news.nid, news.ntitle, news.ncontent, news.ndate, news_links.nlurl, news_links.nlname
FROM news INNER JOIN news_links ON news_links.nl_nid = news.nid;

Da es ja sein könnte das zu den news, kein Eintrag in der news_links Tabelle vorhanden ist. .... und müßte es dann nicht sogar LEFT JOIN heißen!? ;)
 
Servus!

Fast! *g*

Code:
SELECT news.ntitle, news.ncontent, news.ndate, news_links.nlurl, news_links.nlname
FROM news_links RIGHT JOIN news ON news_links.nl_nid = news.nid;

Gruß Tom
 

Anhänge

  • db3.zip
    11,2 KB · Aufrufe: 12
Wieso fast? Ist doch genau das gleiche:

SELECT news.nid, news.ntitle, news.ncontent, news.ndate, news_links.nlurl, news_links.nlname FROM news LEFT JOIN news_links ON news_links.nl_nid = news.nid;


... hab kein Access....
 
Servus!

Bei einem LEFT JOIN würden wir die Datensätze aus der Tabelle News Links bekommen, die auf einen News Datensatz verweisen, der nicht existiert ...

wir wollen es aber umgekehrt ;-)

Deshalb RIGHT JOIN ...

Gruß Tom
Schöne Feiertage!
 
Neee. Hatte doch deswegen geschrieben:
FROM news LEFT JOIN news_links

... finde das übersichtlicher und ist bestimmt auch leichter zu verstehen.
 
Zuletzt bearbeitet:
Hi,

erstmal danke für eure antworten.

Leider ist das aber nicht ganz das was ich brauche, jetzt bekomme ich zwar alle Links zu den jeweiligen News, aber angenommen es sind 3 Links, dann bekomm ich die entpsrechenden News auch 3 mal als Ergebnis, was nicht das entspricht was ich brauche.

Ich denke mal dass es einfacher ist wenn ich 2 SQL Query's mache.

Trotzdem nochmal danke für eure Hilfe.

mfg

Devil
 
Zurück