webForumDet fria alternativet

Söka i flera tabeller

Databaser & SQLur Databashanterare & SQL

8 svar · 383 visningar · startad av Calippo

CalippoMedlem sedan aug. 2002536 inlägg
#1

Hur skriver man för att räkna ut antalet träffa i en sökning på flera tabeller?

Koden under söker bara igenom en tabell/fält:
sql = "SELECT distinct(count(tblCustomers.strCompanyname)) as intRecords FROM tblCustomers WHERE tblCustomers.strCompanyname LIKE '%" & request.querystring("keyword") & "%'"

Men om man vill söka igenom flera tabeller och typ alla fält, hur skriver man då?

LarsGMedlem sedan dec. 200012 464 inlägg
#2

Distinct är onödigt i detta fall.

select 'T1',count(*) as intRecords 
  from T1
where <villkor>
union all 
select 'T2',count(*) 
  from T2
where <villkor>

Flyttas från ASP

CalippoMedlem sedan aug. 2002536 inlägg
#3

Jag vet inte om det är bara för att det är fredag idag, men det står helt still i huvudet idag.

Hur skriver man sql satsen för att söka efter ett ord i tex tre olika tabeller och ett antal olika fält i varje tabell?

LarsGMedlem sedan dec. 200012 464 inlägg
#4

Vill du veta hur många poster det finns sammanlagt i alla tabeller som uppfyller villkoren eller i varje tabell för sig?

om du vill söka efter ett begrepp i olika kolumner:

select count(*) 
   from t
  where c1 like '%searchTerm%'
       or c2 like '%searchTerm%'

om du vill summera ihop flera sökningar

select sum(c)
 from 
  (select count(*)  as c
   from t1
  where c1 like '%searchTerm%'
       or c2 like '%searchTerm%'
   union all
select count(*)  as c
   from t2
  where c1 like '%searchTerm%'
       or c2 like '%searchTerm%') dt
CalippoMedlem sedan aug. 2002536 inlägg
#5

Ser bra ut, men jag får den inte att fungera...

Felmeddelande:
'Case' förväntas.

select sum(c)
from
(select count(*) as c
from tblCustomers
where strCompanyname like '%searchTerm%'
or strAddress1 like '%searchTerm%'
union all
select count(*) as c
from tblDomains
where strDomainname like '%searchTerm%'
or strFTPServer like '%searchTerm%') dt

The_HulkMedlem sedan juni 20031 837 inlägg
#6

vad använder du för databas?
MySQL eller Microsoft SQL?

CalippoMedlem sedan aug. 2002536 inlägg
#7

Tyvärr bara Access databas.

Nu fick jag ordning på sql raden, men hur skriver jag ut resultatet?
Provade med <%=Rs("c")%> men det fungerar inte.

LarsGMedlem sedan dec. 200012 464 inlägg
#8
<%=Rs(0)%>

eller så får du namnge uttrycket med sum i SQL-frågan.

CalippoMedlem sedan aug. 2002536 inlägg
#9

OK, nu fungerar det.

Kan man på ett lätt sätt leta igenom två eller flera tabeller (och alla fält i tabellerna) och sedan loopa ut resultatet?

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