webForumDet fria alternativet

Få in en till join

Databaser & SQLur Databashanterare & SQL

4 svar · 247 visningar · startad av SPinckney

Medlem sedan juli 2002104 inlägg
Frågan#1

Halloj,

sql = "Select * from tblmenu inner join tblmarkets on tblmenu.menumarket = tblmarkets.marketid order by marketname, menuname ASC"

Den plockar bara ut menyerna för alla marknaderna.

Men jag vill plocka ut menyerna som är relaterade till samma marknad som usern är relaterad till.

Alltså where tblmenu.menumarket = tblusers.usermarket

Hur får jag in detta?

Medlem sedan dec. 200012 464 inlägg
#2
sql = "Select * from (tblmenu inner join tblmarkets 
on tblmenu.menumarket = tblmarkets.marketid )
inner join tblusers on
tblmenu.menumarket = tblusers.usermarket 
where tblusers.id = ? <-------
order by marketname, menuname ASC"
Medlem sedan juli 2002104 inlägg
#3

Jag tyckte detta borde räcka

sql = "Select * from (tblmenu inner join tblmarkets 
on tblmenu.menumarket = tblmarkets.marketid) 
inner join tblusers on 
tblmenu.menumarket = tblusers.usermarket"

För då borde den väl slänga fram dom menyerna som har samma värde i menumarket kollumnen som finns i tblusers.usermarket kollumnen?

Men den loopar ut 3 av varje för alla marknader nu ?

Medlem sedan dec. 200012 464 inlägg
#4

Det beror på att samma marknad kan förekomma flera gånger i tabellen tblusers. Det var därför jag tänkte att man skulle begränsa det till en speciell user.

Medlem sedan juli 2002104 inlägg
#5

Kan ju iofs va smart ;)

Nu funkar det perfa! tack!

sql = "Select * from (tblmenu inner join tblmarkets 
on tblmenu.menumarket = tblmarkets.marketid) 
inner join tblusers on 
tblmenu.menumarket = tblusers.usermarket 
where tblusers.username = '" & ntusername & "'"
126 ms totalt · 3 externa anrop · v20260731065814-full.25f56b17
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
123 ms — hämta tråd, inlägg och bilagor (db)