webForumDet fria alternativet

Databasfråga i ASP

3 svar · 278 visningar · startad av devotion

devotionMedlem sedan jan. 20013 582 inlägg
#1

Hej!
Om jag har två stycken tabeller i access som ser ut som nedan:

tbl1

testId
testname1
testnumber1

tbl2

testId
testname2
testnumber2

Sedan vill jag hämta data från båda tabellerna genom att ställa en sql fråga som ser ut ungefär så här :

SELECT * FROM tbl1, tbl2 WHERE tbl1.testId = tbl2.testId ORDER BY testId

Då hämtas ju alla data från de båda tabellerna där vilkoret uppfylls.

MEN!

Vad händer om tbl1 har fler värden i kolumnen testId som inte tbl2 har eller vice versa?

Jag inser ju att det kommer bli ett felmeddelande typ EOF eller liknande.

Hur kan man göra för att i resultatet få följande:

Namn1 - Namn2
Pelle - Saknas
Olle - Kalle
Saknas - Sven

Hoppas ni förstår

LarsGMedlem sedan dec. 200012 464 inlägg
#2
SELECT testid,
testname1,
'Saknas'
FROM tbl1 
where testid not in (select testid from tbl2)
union all
select tbl1.testid,
testname1,
testname2
from tbl1,tbl2
where tb1.testid = tbl2.testid
union all
select testid,
'Saknas',
testname2
from tbl2
where testid not in (select testid from tbl1)
order by testid

Flyttas från ASP

devotionMedlem sedan jan. 20013 582 inlägg
#3

Hej! :r
Kände på mig att denna tråden skulle flyttas....

Tack för svaret i a f LarsG

Skulle du inte kunna förklara lite vad du gör i SQL-frågan???

Mvh

LarsGMedlem sedan dec. 200012 464 inlägg
#4

Det är tre frågor vars resultat sammanfogas med hjälp av union all. Den första select-frågan returnerar de namn som finns i tbl1 men inte i tbl2, den andra returnerar de som finns i båda tabellerna och den sista de som enbart finns i tbl2.

139 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
137 ms — hämta tråd, inlägg och bilagor (db)