Avatar billede tsearex999 Nybegynder
02. marts 2004 - 08:41 Der er 4 kommentarer og
2 løsninger

Søgning i 2 tabeller

Hejsa
Jeg har 2 tabeller i min mysql db som ikke har nogen indbyrdes relation. Jeg vil gerne kunne søge i de 2 tabeller på en gang.

Jeg har læst de spørgsmål som er besvaret på eksperten omkring emnet men det har ikke hjulpet mig.

Er der nogen som ved hvordan man gør det
Avatar billede magune Nybegynder
02. marts 2004 - 08:49 #1
Du er ikke så detaljeret omkring hvad du mener med "på een gang". Hvis du ikke kan/vil/må joine tabellerne først, hvad mener du så med at søge på een gang?

Den dyre metode er at anvende søgning på kartesisk produkt af tabellerne  f.eks.

Select * from tabel1, tabel2 where tabel1.Name like 'Gutter' or tabel2.LastName like 'Mann';

Men dette er ikke en JOIN - det er en GANGE operation som er meget dyr på store tabeller. Den funker måske som du gerne vil?

mvh.
GAa
Avatar billede dk_akj Nybegynder
02. marts 2004 - 08:55 #2
Hvad med en union ??

select felt1 as f1, felt2 as f2 felt3 as f3 from tabel1 where noget like '%test%'
union
select felt_a as f1, felt_b as f2 felt_c as f3 from tabel_c where nogetandet like '%test%'

Det forudsætter bare af det du selecter som f1 er af samme datatype f2 er af samme datatype osv.
Desuden skal der være lige mange "kolonner" i hver selectstatement.

//akj
Avatar billede tsearex999 Nybegynder
02. marts 2004 - 09:05 #3
Jeg kigger lige på det men der går nok lige et par timer. Mange tak for de hurtige svar
Avatar billede tsearex999 Nybegynder
02. marts 2004 - 09:23 #4
@magune
Det virker på en måde men den finder de sammen rekords mere ind en gang.

Jeg gør sådan:
Set objRs = Conn.Execute("Select * from lobeseddel, nyhed where (lobeseddel.artikel like '% "&strsoeg&" %' or nyhed.artikel like '% "&strsoeg&" %')  LIMIT " & intStart & ", " & intPageSize & ";")
Avatar billede tsearex999 Nybegynder
04. marts 2004 - 08:03 #5
Jeg siger tak for hjælpen
Avatar billede magune Nybegynder
04. marts 2004 - 08:41 #6
Du skal bare brugekeyword DISTINCT - så vi lenslydende rækker kun komme med een gang. Som regel kan man elmiminere rækkerne vha. en passende WHERE clause.

SELECT DISTINCT * .... bla bla ..

mvh
GAa
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester