webForumDet fria alternativet
Logga in / Bli medlem

UNION

Databaser & SQL

1 svar · 137 visningar · startad av Eclipse

Medlem sedan juli 20003 825 inlägg
Trådstart#1

Detta är en follow-up från denna tråden.

Jag har modifierat koden till:

' ## SELECT MAILINGLISTS
SQL = " SELECT m.intID, m.strName, 'TRUE' as Subscriber" _
& " FROM mailinglist m, users u " _
& " WHERE EXISTS " _ 
& " (SELECT intID FROM subscribers s WHERE s.intUserID = u.intID AND s.intMailinglistID = m.intID AND s.intUserID = " & request("ID") & ") " _
& " UNION " _
& " SELECT m.intID, m.strName, 'FALSE' " _
& " FROM mailinglist m, users u " _
& " WHERE NOT EXISTS " _
& " (SELECT intID FROM subscribers s WHERE s.intUserID = u.intID AND s.intMailinglistID = m.intID AND s.intUserID = " & request("ID") &");"
set mySQL = Conn.Execute(SQL)
listMailinglist = mySQL.GetRows()

Här ser ni resultatet.
Det är följdaktligen inte superläckert. jag vill ju inte att samma post ska finnas med två gånger! Vad göra??

Medlem sedan juli 20003 825 inlägg
#2

This is the way

' ## SELECT MAILINGLISTS
SQL = " SELECT m.intID, m.strName, 'TRUE' as Subscriber" _
& " FROM mailinglist m, [b]users u[/b] " _
& " WHERE EXISTS " _ 
& " (SELECT intID FROM subscribers s WHERE s.intUserID = u.intID AND s.intMailinglistID = m.intID AND s.intUserID = " & request("ID") & ") " _
& " UNION " _
& " SELECT m.intID, m.strName, 'FALSE' " _
& " FROM mailinglist m, [b]users u[/b] " _
& " WHERE NOT EXISTS " _
& " (SELECT intID FROM subscribers s WHERE s.intUserID = u.intID AND s.intMailinglistID = m.intID AND s.intUserID = " & request("ID") &");"
set mySQL = Conn.Execute(SQL)
listMailinglist = mySQL.GetRows()
' ## SELECT MAILINGLISTS
SQL = " SELECT m.intID, m.strName, 'TRUE' as Subscriber" _
& " FROM mailinglist m " _
& " WHERE EXISTS " _ 
& " (SELECT intID FROM subscribers s WHERE s.intUserID = u.intID AND s.intMailinglistID = m.intID AND s.intUserID = " & request("ID") & ") " _
& " UNION " _
& " SELECT m.intID, m.strName, 'FALSE' " _
& " FROM mailinglist m " _
& " WHERE NOT EXISTS " _
& " (SELECT intID FROM subscribers s WHERE s.intUserID = u.intID AND s.intMailinglistID = m.intID AND s.intUserID = " & request("ID") &");"
set mySQL = Conn.Execute(SQL)
listMailinglist = mySQL.GetRows()

Nu svarar jag mig själv. Ta bort users u så fungerar det!

253 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)