webForumDet fria alternativet

Hur hämtar jag uppgifter från flera tabeller?

Databaser & SQL

1 svar · 226 visningar · startad av Wolf

Medlem sedan jan. 200112 inlägg
Frågan#1

Jag har totalt 4 olika tabeller som jag vill samla data från till ett recordset för att använda till att posta i ett forum med flera konferanser.
Jag har läst om det men förstod inte riktigt och exemplen ledde inte till att mitt problem kunde lösas då de bara hänvisar till två tabeller som slås ihop medan jag behöver fyra. Jag kommer inte på hur, kanske är det omöjligt?

Kort info om tabellerna.
MEDLEM-Medlems_id
INTERNPOST-Internpost_id

KONFERANS-Konferans_id
INLAGG-Inlaggs_id

Internposten ska iofs presenteras för sig men på samma sida så jag tänkte ta med den i recordsetet när jag ändå höll på.

Är det någon som kan hjälpa mig med sql satsen för att få det att gå ihop?

Så här skrev jag men det ger felmeddelandet syntax error in the FROM clause.

sql3="select MEDLEM.*, INTERNPOST.*, KONFERANS.*, INLAGG.* " &_
"from MEDLEM inner join INTERNPOST and MEDLEM inner join KONFERANS and KONFERANS inner join INLAGG " &_
"on MEDLEM.Medlems_id= INTERNPOST.Internpost_id and MEDLEM.Medlems_id= KONFERANS.Konferans_id=INLAGG.Inlaggs_id " &_
"where MEDLEM.Medlems_id like INTERNPOST.Medlems_id or MEDLEM.Medlems_id like KONFERANS.Medlems_id " &_
"and KONFERANS.Konferans_id like INLAGG.Konferans_id order by Datum desc;"

------------------
/Wolf

Medlem sedan dec. 200012 464 inlägg
#2

Du kan visserligen joina ihop dina fyra tabeller men jag tycker inte att det är någon bra ide. En join innebär ju att du kombinerar ihop alla möjligheter vilket innebär att att du kommer att få mycket redundant data i ditt rekordset.

Gör en select för varje sak som du vill visa.

Om du vill använda inner join mellan flera tabller kan du antingen skriva såhär

select * from A,B,C
where a.c1 = b.c1
  and b.c2 = c.c2

eller så kan man använda den krångligare join-syntaxen

 select * from a join b on a.c1 = b.c1 join c on b.c2 = c.c2

------------------
essentitia preter non sans multiplicandum

265 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
137 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)