Toon posts:

[MSSQL] 3 tables join uitvoeren?

Pagina: 1
Acties:
  • 51 views sinds 30-01-2008

Verwijderd

Topicstarter
Hey,

Ik heb 3 tables:

tblUser:
UserID
Name
UserName
Password
etc...

tblPage:
PageID
UserID ---> tblUser
PageName

tblWindow:
WindowID
PageID ---> tblPage
WindowName
WindowType
etc...


Nu is mijn vraag.. Hoe kan ik door middel van een SQL (waarschijnlijk Join?) alle windows van een bepaalde User opvragen, zonder eerst een SQL query van de pages te doen en daarna een soort loop inbouwen om alle windows van al die pages te gaan querien?

En hoe kan ik bijvoorbeeld de User info opvragen aan de hand van een WindowID?

Ik heb gekeken op wikipedia voor de Join functie, welke ik ook snap en gebruik in SQL voor bepaalde dingen tussen 2 tabellen. Maar ik snap niet hoe ik dit met 3 tabellen zou kunnen doen... Google en het zoeken op GOT gaf ook niet veel resultaat, met de zoekwoorden: "SQL 3 tables" en "SQL 3 table JOIN", althans, niet een vergelijkbare soort opstelling.

  • Reinier
  • Registratie: Februari 2000
  • Laatst online: 07:15

Reinier

\o/

Gewoon, hetzelfde als een join op twee tabellen!

select *
from table1
inner join table2 on ...
inner join table3 on ...

etc.

  • TheRookie
  • Registratie: December 2001
  • Niet online

TheRookie

Nu met R1200RT

Of je 2 of 3 tabellen joint maakt voor het princiepe niet zoveel uit, welke queries heb je zelf al geprobeert om het gewenste resultaat te krijgen ?

Verwijderd

Topicstarter
Ahhhh.. Ik heb het nu opgelost :)

Ik doe het nu zo:

SQL:
1
2
3
4
5
SELECT     tblWindows.WindowID, tblUsers.UserID
FROM         tblPages INNER JOIN
                      tblUsers ON tblPages.UserID = tblUsers.UserID INNER JOIN
                      tblWindows ON tblPages.PageID = tblWindows.PageID
WHERE     (tblUsers.UserID = 38)


Om alle windows op te zoeken van User 38


En omgekeerd werkt het nu ook :D Bedankt voor het verkrijgen van het inzicht _/-\o_

[ Voor 11% gewijzigd door Verwijderd op 10-07-2006 11:44 ]


  • PhysicsRules
  • Registratie: Februari 2002
  • Laatst online: 22-12-2025

PhysicsRules

Dux: Linux voor Eenden

Verwijderd schreef op maandag 10 juli 2006 @ 11:40:
Ahhhh.. Ik heb het nu opgelost :)

Ik doe het nu zo:

SQL:
1
2
3
4
5
SELECT     tblWindows.WindowID, tblUsers.UserID
FROM         tblPages INNER JOIN
                      tblUsers ON tblPages.UserID = tblUsers.UserID INNER JOIN
                      tblWindows ON tblPages.PageID = tblWindows.PageID
WHERE     (tblUsers.UserID = 38)


Om alle windows op te zoeken van User 38
Zo moet dat inderdaad.

Een tipje: voor overzichtelijkheid kun je beter een INNER JOIN op een nieuwe regel laten beginnen.
SQL:
1
2
3
4
5
SELECT     tblWindows.WindowID, tblUsers.UserID
FROM         tblPages 
INNER JOIN tblUsers ON tblPages.UserID = tblUsers.UserID 
INNER JOIN tblWindows ON tblPages.PageID = tblWindows.PageID
WHERE     (tblUsers.UserID = 38)

  • whoami
  • Registratie: December 2000
  • Laatst online: 00:19
Dit is eigenlijk best basic; even de manual erbij pakken is meestal sneller voor dergelijke triviale vragen ipv ze direct op GoT te stellen.

https://fgheysels.github.io/

Pagina: 1

Dit topic is gesloten.