"SELECT t_status FROM topics WHERE topic_id=81 UNION SELECT f_name FROM forum WHERE forum_id=22"
Hur ska man göra för att få detta att funka? (tabellerna har ingen relationer här)
------------------
Peter D
22 svar · 325 visningar · startad av Pace
"SELECT t_status FROM topics WHERE topic_id=81 UNION SELECT f_name FROM forum WHERE forum_id=22"
Hur ska man göra för att få detta att funka? (tabellerna har ingen relationer här)
------------------
Peter D
Det enda jag kommer på är att det borde vara samma datatyp på kolumnen i recordset:et du drar ihop...
Om det är det...
då vet jag inte... :q
------------------
Jag har en vit hund, eller är det en isbjörn?
Nej, men det måste de väl inte vara väl?
t_status = yes/no
topic_id = num
f_name = text
forum_id= = num
------------------
Peter D
Jo, det skall vara samma antal kolumner i select-listorna och det skall vara jämförbara typer dvs t_status och f_name.
I och för sig så brukar inte Jet vara så noga med sådant. vad är problemet? Får du något felmeddelande eller vad?
------------------
essentitia preter non sans multiplicandum
Hmmm...
Du har rätt...
Jag gjorde en test för säkerhetsskull...
Men det fungerade...
Det finns ingen anledning till att det inte ska fungera...
Får du något felmeddelande?
------------------
Jag har en vit hund, eller är det en isbjörn?
"Den" kan inte hitta recordsetet (f_name):
Item cannot be found in the collection corresponding to the requested name or ordinal.
[r] Det enda jag vill göra är att ta ut två recordset ur två tabeller... de har inget med varandra att göra.
------------------
Peter D
[Redigerat av Pace den 03 aug 2001]
Du kommer att få 2 rader med en kolumn som kommer att heta t_status.
Första raden kommer att innehålla t_status och andra raden f_namn.
Om det är korrekt alltså...
tror jag :l
Hmmm...
Mysko...
Kolla stavfel, om dom finns.
Ifall dom av någon konstig anledning skulle vara reserverad ord så kan du använda hakparanteser runt...
Typ såhär:
SELECT [t_status] FROM topics WHERE topic_id=81 UNION SELECT [f_name] FROM forum WHERE forum_id=22
Kolla också så att ID:na är rätt...
Lycka till :)
------------------
Jag har en vit hund, eller är det en isbjörn?
[Redigerat av Koplik den 03 aug 2001]
Nope de är inga reservera ord. Och ID:na hämar jag från en querystring, så 81 & 22 är bara exmpel här. Så det är inge fel är heller.
------------------
Peter D
Ja, jag kan få krupp snart om du inte löser det där :D
Jag har inte den blekaste aning om vad felet kan vara...
Mitt test med ett strängvärde och ett booleanskt värde fungerade klockrent...
Så det är bara att felsöka kära Pace! :l
It's a dirty job, but someone have to do it. :e
------------------
Jag har en vit hund, eller är det en isbjörn?
Fältnamnen i recordset blir dom som finns i den första select-satsen, så ditt fält kommer att heta t_status, även om det innehåller värden från f_name i tabellen forum.
Om du vill kunna skilja på vilka värden som kommer från vilken tabell så kan du skriva
"SELECT t_status,1 as typ FROM topics WHERE topic_id=81 UNION SELECT f_name, 2 FROM forum WHERE forum_id=22"
och sedan kan du i din vbs skriva
if cint(rs("typ")) = 1 then
'hantera status
else
'hantera f_name
end if
------------------
essentitia preter non sans multiplicandum
Nu blir det ju fel...
Jag tar ut tre värden Union, men recordseten skiftar värden beroende på om t_status är sant/falskt...
Jag vill alltså inte kolla vad det är för värde med "If", utan jag vill på något sätt få ut just tre variabler direkt. Går det på ett smidigt sätt?
------------------
Peter D
det jag kan komma att tänka på, som jag inte vet om det fungerar i access, är att göra en liten subquery:
"SELECT t_status, (SELECT f_name FROM forum WHERE forum_id=22) as f_name FROM topics WHERE topic_id=81"
torde fungera i min älskade sql server, och du får göra access-testet. ;)
funkar det som jag vill så ska du få ett recordset med två fält (som inte har något med varandra att göra, då), t_status och f_name.
mvh,
------------------
<A HREF="http://cartman.nu" TARGET=_blank>
can i borrow your goat?
</A>
Vad är Union och hur fungerar den?
UNION Lägger ihop två tabeller till en ny tabell !!!
------------------
Är man medlem på WF så behöver man inga vänner !
UNION sammanfogar resultaten från två SELECT-satser (sökningar)
Okej Emission bara för att det är du så kan jag väl hålla med ......
Men är inte det mer vad man använder det till... :)
Vi menar ju samma sak...
För resultatet man får ut är ju unikt får två tabeller sammanslaget.....
------------------
Är man medlem på WF så behöver man inga vänner !
[Redigerat av Tobbster den 06 aug 2001]
För resultatet man får ut är ju unikt får två tabeller sammanslaget.....
Nja, det behöver faktiskt inte vara två tabeller. Man kan lika gärna göra en UNION i en tabell. Det är resultaten som förenas, inte tabellerna. :)
Okej där lärde man sig något nytt.....Men så brukar det vara när du skriver något....Tack för den lektionen
------------------
Är man medlem på WF så behöver man inga vänner !
Så Union är som en Join? Är inte riktigt med på skillnaden? :)