webForumDet fria alternativet

Join tror jag

9 svar · 304 visningar · startad av icaaq

icaaqMedlem sedan okt. 20005 273 inlägg
#1

Hej.
Jag har följande tabeller.

[red]
[b]tblBookings[/b]
pk_id (räknare) | fk_PersonId (tal, i relation med tblPerson.pk_id)  | fk_ExpoDisplayId (tal, i relation med tblExpoDisplay.pk_id)

[b]tblPerson[/b]
pk_id (räknare) | fldName (text) | fldAdress (text)

[b]tblExpoDisplay[/b]
pk_id (räknare) | fk_ExpoId (tal, i relation med tblExpo.pk_id) | fk_DisplayId (tal, i relation med tblDisplay.pk_id)

[b]tblExpo[/b]
pk_id (räknare) | fldName (text)

[b]tblDisplay[/b]
pk_id (räknare) | fldName (text)

[/red]

Nu får ni en nöt att knäcka ;)

Jag vill ha plocka fram tblPerson.fldName, tblExpo.fldName, tblDisplay.fldName där det tblBookings.fk_ExpoDisplayId = tblExpoDisplay.pk_id.

Nån som känner sig sugen ;) Jag klockar er........

mv icaaq

OveRRidEMedlem sedan feb. 200112 078 inlägg
#2

Jag är inte säker, men jag testar. ;)

RED. Näe, det är nog helt åt skogen det där. :e

RED2. Vi gör ett nytt försök;

SELECT * FROM tblBookings b
   INNER JOIN tblPerson p ON p.pk_id = b.fk_PersonId 
   INNER JOIN tblExpoDisplay ed ON [u]ed.pk_id = b.fk_ExpoDisplayId[/u]
   INNER JOIN tblExpo e ON e.pk_id = ed.fk_ExpoId
   INNER JOIN tblDisplay d ON d.pk_id = ed.fk_DisplayId
icaaqMedlem sedan okt. 20005 273 inlägg
#3

Kan man rada upp INNER JOIN´s på det där sättet? För jag får fel om har med flera INNER JOINS :( men om jag bara använder en så får jag ut det jag vill ha.

mv icaaq

OveRRidEMedlem sedan feb. 200112 078 inlägg
#4

Använder du Access?

Isåfall måste varje substatement inneslutas i paranteser:

SELECT * FROM ((((tblBookings b
   INNER JOIN tblPerson p ON p.pk_id = b.fk_PersonId)
   INNER JOIN tblExpoDisplay ed ON ed.pk_id = b.fk_ExpoDisplayId)
   INNER JOIN tblExpo e ON e.pk_id = ed.fk_ExpoId)
   INNER JOIN tblDisplay d ON d.pk_id = ed.fk_DisplayId)

Jag tror att det är där de skall sitta iallafall. ;)

icaaqMedlem sedan okt. 20005 273 inlägg
#5

WEeeEeEeEeEe

Kanon OveRRide :D

mv icaaq

icaaqMedlem sedan okt. 20005 273 inlägg
#6

Nu skulle jag vilja utöka lite. jag har denna.

[red]
SELECT DISTINCT p.fldCompany, b.fk_PersonId AS bid, ep.fldStatus AS status, e.fldExpoName, [b](SELECT COUNT(*) FROM ( ((tblPerson AS p INNER JOIN tblBookings AS b ON p.pk_id=b.fk_PersonId) INNER JOIN tblExpoDisplay AS ep ON b.fk_ExpoDisplayId=ep.pk_id) INNER JOIN tblExpo AS e ON ep.fk_ExpoId=e.pk_id) WHERE ep.fldStatus = 1 AND p.pk_id = b.fk_personId) AS cnt[/b]
FROM ((tblPerson AS p INNER JOIN tblBookings AS b ON p.pk_id=b.fk_PersonId) INNER JOIN tblExpoDisplay AS ep ON b.fk_ExpoDisplayId=ep.pk_id) INNER JOIN tblExpo AS e ON ep.fk_ExpoId=e.pk_id;
[/red]

det är min count som inte vill som jag vill..... nu får jag ut värdet av alla poster som har fldStatus = 1 men jag vill bara ha det antal som har fldStatus = 1 och det personId´t

Hoppas ni förstår ;)

mv icaaq

LarsGMedlem sedan dec. 200012 464 inlägg
#7
SELECT DISTINCT p.fldCompany, b.fk_PersonId AS bid, 
       ep.fldStatus AS status, e.fldExpoName, 
 (SELECT COUNT(*) FROM ( ((tblPerson AS p INNER JOIN tblBookings AS b1 
  ON p.pk_id=b1.fk_PersonId) INNER JOIN tblExpoDisplay AS ep 
  ON b1.fk_ExpoDisplayId=ep.pk_id) INNER JOIN tblExpo AS e 
  ON ep.fk_ExpoId=e.pk_id) 
  WHERE ep.fldStatus = 1 AND p.pk_id = b.fk_personId) AS cnt
FROM ((tblPerson AS p INNER JOIN tblBookings AS b 
  ON p.pk_id=b.fk_PersonId) INNER JOIN tblExpoDisplay AS ep 
  ON b.fk_ExpoDisplayId=ep.pk_id) INNER JOIN tblExpo AS e 
  ON ep.fk_ExpoId=e.pk_id;
icaaqMedlem sedan okt. 20005 273 inlägg
#8

Tack LarsG.
Den funkade som vanligt.

Men jag kan inte förstå varför jag inte kan använda b?

mv icaaq

LarsGMedlem sedan dec. 200012 464 inlägg
#9

Du hade två b i din första fråga. I where i subfrågan så kommer b att peka på den tabell som finns i subfrågan och inte den som finns i huvudfrågan.

icaaqMedlem sedan okt. 20005 273 inlägg
#10

ok....

mv icaaq

124 ms totalt · 3 externa anrop · v20260731065814-full.2b84b982
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
122 ms — hämta tråd, inlägg och bilagor (db)