webForumDet fria alternativet

Hur ser ungefär en dubbel "Inner join" ut?

Databaser & SQL

8 svar · 209 visningar · startad av Lukaspojken

Medlem sedan maj 20011 312 inlägg
Frågan#1

Jag sitter här och klurar på hur tre tabeller kan kopplas ihop med varandra. Är det någon som har ett enkelt förslag eller lönar det kanske med att göra en inner join, och därefter hämta hela den tredje tabellen och matcha ihop det sen i form av en if-sats.

------------------
Alltid lär man sig något nytt varje dag...

[Redigerat av Lukaspojken den 15 okt 2001]

Medlem sedan juni 200032 967 inlägg
#2

Jag tror att du kan hitta massor med dubbeljoiner i SQL-forumet.

Mvh,

------------------
All your base are belong to me.

Medlem sedan feb. 20012 412 inlägg
#3
SELECT * FROM Table1 
INNER JOIN table2 
ON tabell1.fält = tabell2.fält
INNER JOIN Table3 
ON tabell2.fält2 = Table3.fält

mvh Jörgen :)

------------------
Varför bråka när man kan kramas?

Medlem sedan juni 20008 205 inlägg
#4

Eller om man tycker att det ser fräckare ut:

SELECT * FROM foo, bar, baz
WHERE foo.fält1 = bar.fält2
AND bar.fält3 = baz.fält4

------------------
You can't be young forever, but you can be immature indefinitely.

Medlem sedan juli 20003 825 inlägg
#5

2 frågor:

1, INNER JOIN
Hur skriver jag?

SQL = "SELECT * FROM [order]" _
& " INNER JOIN [job] ON order.x_jobID = job.x_ID "_
& " INNER JOIN [users] ON job.x_userID = users.x_ID"

---

Microsoft JET Database Engine error '80040e14'

Syntax error (missing operator) in query expression 'order.x_jobID = job.x_ID INNER JOIN [users] ON job.x_userID = users.x_ID'.

/admin/new_jobs/index.asp, line 58

Det fanns i skrivande stund inga poster som uppfyllde kreteriet men det borde inte generera ett felmeddelande. Så blir det även i framtinen.

2, Access
Man kan skapa frågor i Access (det har jag gjort) och sedan trycka på en knapp eller välja ett menyval för att sedan kunna klistra in koden på asp sidan.

Vilken var knappen eller vad heter menyvalet?? Jag minns ej och jag har letat och kollat hjälpen, jag lovar! :-)

Medlem sedan dec. 200012 464 inlägg
#6
SQL = "SELECT * FROM ([order]" _
& " INNER JOIN [job] ON order.x_jobID = job.x_ID )"_
& " INNER JOIN [users] ON job.x_userID = users.x_ID"

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

Medlem sedan juli 20003 825 inlägg
#7

Tack! Funka grejt!

[job]
x_ID
x_userID
x_competenceID - typ av uppdrag

	SQL = "SELECT * FROM ([job]" _
	& " INNER JOIN [users] ON job.x_userID = users.x_ID )"_
	& " INNER JOIN [competence] ON job.x_competenceID = competence.x_ID WHERE job.x_ID = " & request("ID") & ";"

?? Jag har inte riktigt fått kläm på det där med inner och left. Det kommer! :-)

Medlem sedan juli 20003 825 inlägg
#8

Mera frågor på samma tema

	SQL = "SELECT * FROM ([job]" _
	& " INNER JOIN [users] ON job.x_userID = users.x_ID )"_
	& " INNER JOIN [competence] ON job.x_competenceID = competence.x_ID " _
	[b]& " INNER JOIN [orderX] ON job.x_ID = orderX.x_jobID " _ [/b]
	& " WHERE job.x_ID = " & request("ID") & ";"

Jag tänkte jag skulle haka på ytterligare en tabell på frågan men det var lättare sagt än gjort! Hur gör man för att synca tre tabeller!?

Medlem sedan dec. 200012 464 inlägg
#9

Lite mer parenteser

SQL = "SELECT * FROM (([job]" _
& " INNER JOIN [users] ON job.x_userID = users.x_ID )"_
& " INNER JOIN [competence] ON job.x_competenceID = competence.x_ID) " _
& " INNER JOIN [orderX] ON job.x_ID = orderX.x_jobID " _ 
& " WHERE job.x_ID = " & request("ID")

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

252 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
123 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)