webForumDet fria alternativet

Flera tabeller (söka)

ASP

4 svar · 206 visningar · startad av Sammy

Medlem sedan maj 2000202 inlägg
Frågan#1

Varför fungerar inte detta?

Set RStemp = Connect.Execute("SELECT * FROM TABELL1, TABELL2 WHERE TABELL1.titel LIKE '%" & sokterm & "%' AND TABELL2.titel LIKE '%" & sokterm & "%' ORDER BY TITEL")

I de bägge två tabellerna har jag exakt samma kolumnnamn så det bör väl gå?

Får detta meddelande:

Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][Drivrutin för ODBC Microsoft Access] Det angivna fältet 'TITEL' kan referera till fler än en av de tabeller som är uppräknade i SQL-uttryckets FROM-instruktion.

------------------
/Sammy Swärd

Medlem sedan feb. 20012 412 inlägg
#2

Hej, du sorterar efter titel, vilket förekommer i båda tabellerna. När du joinar måste du antingen skriva tabellen.fältet överallt eller skilja fälten åt med olika namn.

mvh Jörgen :)

------------------
.: Det är jag som ger svaren och det är Ni som ställer frågorna :.

Medlem sedan dec. 200012 464 inlägg
#3

Nej, du måste kvalificera kolumnnamnet även i order by.

Nu tror jag inte att du komer att få det resultat du förväntar dig. Du kommer att få alla kombinationer av poster från de båda tabellerna där villkoren är upppfyllda. Det är nog en union som du borde använda.

Set RStemp = Connect.Execute("SELECT * FROM TABELL1 WHERE titel LIKE '%" & sokterm & "%' union select * from TABELL2 where titel LIKE '%" & sokterm & "%' ORDER BY TITEL")

Det förutsätter att det är lika många kolumner i tabell1 och tabell2 och att de har jämförbara typer.

------------------
essentitia preter non sans multiplicandum

Medlem sedan maj 2000202 inlägg
#4

Nu förstår jag inte riktigt vad du menar? Kan du förklara lite närmare och göra ett exempel på hur det kan se ut?

Detta skrev jag tydligen samtidigt som LarsG svarade...

------------------
/Sammy Swärd

[Redigerat av Sammy den 19 jan 2002]

Medlem sedan maj 2000202 inlägg
#5

Tack LarsG,

detta löste mitt problem...

men säg att jag då har tre olika tabeller hur gör jag då..

Set RStemp = Connect.Execute("SELECT * FROM TABELL1 WHERE titel LIKE '%" & sokterm & "%' union select * from TABELL2 where titel LIKE '%" & sokterm & "%' union select * from TABELL3 where titel LIKE '%" & sokterm & "%' ORDER BY TITEL")

Fungerar detta?

Jajemen.. det gjorde det.. tänk vad SQL är underbart ;)

------------------
/Sammy Swärd

[Redigerat av Sammy den 19 jan 2002]

269 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
133 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)