webForumDet fria alternativet

UNION - sök i 2 tabeller

Databaser & SQL

6 svar · 312 visningar · startad av corona

Medlem sedan feb. 200470 inlägg
Frågan#1

Undrar om någon kan hjälpa mig med en sökfunktion där man ska kunna söka i 2 tabeller.
Har förstått att man ska använda sig av UNION men jag får bara fel.
Någon som kan hjälpa mig med vad som är fel eller förklara.

SQL = "SELECT * FROM Produkter WHERE Omrade Like '%" & Sokord & "%' or Niva1 Like '%" & Sokord & "%' or Niva2 Like '%" & Sokord & "%' or Niva3 Like '%" & Sokord & "%' or Produkt Like '%" & Sokord & "%' or ProduktBeskrivn Like '%" & Sokord & "%' or Referenser Like '%" & Sokord & "%'" &_
"UNION SELECT * FROM Checklistor WHERE Omrade Like '%" & Sokord & "%' or Niva1 Like '%" & Sokord & "%'"	
Set RecSet = DB.execute(SQL)

Mitt felmeddelande:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Microsoft Access Driver] The number of columns in the two selected tables or queries of a union query do not match.

/Annette

Medlem sedan dec. 2004182 inlägg
#2
SELECT * From Produkter, Checklistor where Omrade Like

Prova det, kanske kan funka.

Medlem sedan juni 200032 967 inlägg
#3

Jag tycker felmeddelandet är tydligt?

Om du försöker smälla ihop resultat från två olika tabeller med olika tabelldefinition så kommer det smälla. Och även om du fick ihop det, hur skulle du kunna presentera resultatet?

Om du ska använda UNION måste det du hämtar ut "passa ihop". Du kanske skulle göra en JOIN istället? Har tabellerna inget med varandra att göra hade jag nog ställt två SQL-frågor.

Medlem sedan feb. 200470 inlägg
#4

Ok, då börjar jag att förstå och inte vill man det ska "smälla".
Det lutar åt att jag får ställa två SQL-satser.
Tack snabba svar.

Medlem sedan dec. 200012 464 inlägg
#5

Flyttas från ASP

Medlem sedan apr. 20031 660 inlägg
#6

HEJ!

Beronde på vad du egentligen vill visa ligger lösningarna i de svar du fått, men jag vill reda ut vad du egentligen får fel på.

Det är att du använder *, om du hämtar tex rubrik, innehall, dvs exakt två fält i båda frågorna fungerar det.

Har du sedan inte innehall utan tex content som fältnamn i den andra tabellen gör det inget, eftersom du hämtar två fält, och content "lagras in" i rs-värdena för innehall.

Hur och OM du behöver kunna skilja på att de kommer från olika tabeller beror på vad du egentligen vill åstadkomma.
Jag har för mig att jag sett på Wf att man kan skilja dem åt.

Medlem sedan juni 200032 967 inlägg
#7

J.N. skrev:

Hur och OM du behöver kunna skilja på att de kommer från olika tabeller beror på vad du egentligen vill åstadkomma.
Jag har för mig att jag sett på Wf att man kan skilja dem åt.

Jadå, det är bara att lägga till ett extra fält i recordsetet. Exempel:

SELECT numeriskt_fält, char_fält, 'någotvärde' AS något_namn FROM tabellen
UNION 
SELECT numeriskt_fält, char_fält, 'någotannatvärde' FROM någonannantabell

Sedan kikar man bara efter innehållet i något_namn för att kunna veta var informationen kommer ifrån.

Mvh

265 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)
128 ms — ändringar (db)