webForumDet fria alternativet

Join i sqlfråga beställes härmed.

ASP

10 svar · 277 visningar · startad av solbulle

Medlem sedan mars 20015 287 inlägg
Frågan#1

Jag har en tabell: tbl_movie_title med diverse kolumner med fakta, vidare har jag en relationstabell: tbl_movie i vilken jag har en massa relationer mellan tbl_movie_title o div övriga tabeller.
Nu vill jag till att börja med kunna lista ut en kolumn ur tbl_movie_title samt "få med mig" en relation från en annan tabell...

SQL = "SELECT fld_mt_name, fld_mt_id FROM tbl_movie_title ORDER BY fld_mt_name"

samt, nu krånglar det...

typ:

SQL = "SELECT fld_g_title FROM tbl_genre Where fld_g_id = (fld_g_id i tbl_movie där fld_m_mtid = fld_mt_id)

Eh? Någon som ser ljuset?

Medlem sedan dec. 20003 563 inlägg
#2

Bra tips. Använd access "frågeskapare".
Den bör nog ge dig rätt lösning på frågan

Medlem sedan aug. 20013 824 inlägg
#3

vart hittar man den då cyprys?

Medlem sedan mars 20015 287 inlägg
#4

"Frågeskaparen" är i mina ögon toksvår att förstå sig på, vidare måste man väl då även skapa relationer i access för att det ska fungera?

Medlem sedan dec. 200012 464 inlägg
#5
SQL = "SELECT fld_g_title,fld_mt_name, fld_mt_id  FROM (tbl_genre g inner join tbl_movie m" &_
" on g.fld_g_id = m.fld_m_id) inner join tbl_movie_title mt " &_
" on m.fld_m_mtid = mt.fld_mt_id"

Med reservation för att något kolumnnamn kan vara felaktigt

Medlem sedan mars 20015 287 inlägg
#6

Jag bugar o bockar, ändrade ett kolumnnamn, det var nog jag som blandade ihop dom, nu fungerar det kanon.

SQL = "SELECT fld_g_title, fld_mt_name, fld_mt_id  FROM (tbl_genre g inner join tbl_movie m" &_
" on g.fld_g_id = m.fld_g_id) inner join tbl_movie_title mt " &_
" on m.fld_m_mtid = mt.fld_mt_id"
Medlem sedan mars 20015 287 inlägg
#7

Hm... hur gör jag om jag ska lista alla fld_mt_name samt fld_mt_id
samt fld_g_title om det finns?

Medlem sedan dec. 200012 464 inlägg
#8

Jag förstår inte riktigt vad du menar. Är det så att alla filmer inte finns med i tbl_genre ?

SQL = "SELECT fld_g_title, fld_mt_name, fld_mt_id  FROM (tbl_movie_title mt inner join tbl_movie m " &_
"on mt.fld_mt_mtid = m.fld_m_id) left outer join " &_
"tbl_genre g on g.fld_g_id = m.fld_g_id"
Medlem sedan mars 20015 287 inlägg
#9

Precis, om man vill lista alla titlar, även de som inte har någon genre inskriven.

Så här fick jag din sqlsats att fungera:

SQL = "SELECT fld_g_title, fld_mt_name, fld_mt_id  FROM (tbl_movie_title mt inner join tbl_movie m " &_
"on mt.fld_mt_id = m.fld_m_mtid) left outer join " &_
"tbl_genre g on g.fld_g_id = m.fld_g_id"
Medlem sedan mars 20015 287 inlägg
#10

Nu har jag fått till lite fler SQL-frågor med hjälp av de som klarades av här.
Nu ska jag lista en filmtitel (fld_mt_name,fld_mt_id) samt ALLA dess tillhörande poster i relationstabellen tbl_movie där det finns poster.

Jag vill alltså få ut i princip samma data som i frågorna ovan, men även ställa villkoret:

where fld_mt_id=" & int(Request.QueryString("id")) & ""

Denna fungerar:

SQL = "SELECT fld_g_title, fld_mt_name, fld_mt_id  FROM (tbl_movie_title mt inner join tbl_movie m " &_
"on mt.fld_mt_id = m.fld_m_mtid) left outer join " &_
"tbl_genre g on g.fld_g_id = m.fld_g_id where fld_mt_id=" & int(Request.QueryString("id")) & ""

Men hur gör jag egentligen för att "haka på" fler fält som är relaterade? Hur är egentligen syntaxen? JAg har försökt med Access inbyggda men den koden verkar inte bli av denna värld.

Hur gör jag till exempel för att slå ihop den ovan med denna?

SQL = "SELECT fld_p_firstname, fld_p_lastname, fld_mt_name, fld_mt_id  FROM (tbl_movie_title mt inner join tbl_movie m " &_
"on mt.fld_mt_id = m.fld_m_mtid) left outer join " &_
"tbl_person p on p.fld_p_id = m.fld_p_id"
Medlem sedan mars 20015 287 inlägg
#11

Attans, det tar sig:

SQL = "SELECT fld_p_firstname, fld_p_lastname, fld_g_title, fld_mt_name, fld_mt_id  FROM ((tbl_movie_title mt inner join tbl_movie m " &_
"on mt.fld_mt_id = m.fld_m_mtid) " &_
" left outer join " &_
"tbl_person p on p.fld_p_id = m.fld_p_id) " &_
" left outer join " &_
"tbl_genre g on g.fld_g_id = m.fld_g_id where fld_mt_id=" & int(Request.QueryString("id")) & ""

Fungerar.

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