Avatar billede torbenbs Nybegynder
17. oktober 2008 - 22:07 Der er 11 kommentarer

Søgning i Tabel1 og resultat søger viderer til Tabel2

Hejsa
Jeg har søg og prøvet en del efterhånden, men nu er jeg ikke så god til engelsk, så jeg håber på et klogt hoved kan hjælpe. Jeg tror det må være noget med en JOIN komandoen.

Jeg har en database med 2 tabeler, og jeg vil gerne have, at et resultat fra et søgning i Tabel1, (det virker fint), men fra en bestemt kolonne, Kol1 skal resultatet gå over og søger i Tabel2 (i en kolonne med samme navn) når den finder det samme ord, skal den udskrive fra en anden kolonne i Tabel2, - Kol2.
Så håber jeg i forstår hvad jeg mener. men kort

Tabel1 - (udskriver resultat) men en bestemt Kol1 skal søge i
Tabel2 - Kol1 og udskriver Kol2 (ind i det samme resultatet)
Avatar billede erikjacobsen Ekspert
17. oktober 2008 - 22:10 #1
select tabel1.kol1,tabel2.kol2 from tabel1 join tabel2 on tabel1.kol1=tabel2.kol1 where tabel1.kol1=7913

--utestet
Avatar billede torbenbs Nybegynder
17. oktober 2008 - 22:37 #2
Det kan jeg ikke rigtigt få putte ind i denne

$sql = "SELECT * FROM Tabel1 WHERE znavn IN ('".$znavne."') AND navn like '%" . $snavn . "%' and by like '%" . $sby . "%') order by navn asc Limit 0,20" or die (mysql_error());

Eller skal det stå for sig selv, på en eller anden måde ?
Avatar billede torbenbs Nybegynder
17. oktober 2008 - 22:47 #3
Jeg glmte lige det er "by" som der skal søges på i den anden tabel
Avatar billede erikjacobsen Ekspert
17. oktober 2008 - 22:59 #4
Det skal vel bare bygges ind i din SQL-sætning. Nu skal man ikke, og i særdeles ikke i en join, bare sige "SELECT * FROM ...". Men det må blive noget i retning af:

$sql = "SELECT tabel1.navn,tabel1.kol1,tabel2.kol2 FROM Tabel1 JOIN tabel2 ON tabel1.kol1=tabel2.kol1 WHERE znavn IN ('".$znavne."') AND navn like '%" . $snavn . "%' and by like '%" . $sby . "%') order by navn asc Limit 0,20" or die (mysql_error());
Avatar billede erikjacobsen Ekspert
17. oktober 2008 - 23:00 #5
Og så skal du være opmærksom på at "by" er et reserveret ord, og feltet "by" skal i din SQL-sætning skrives som:    `by`
Avatar billede torbenbs Nybegynder
17. oktober 2008 - 23:02 #6
Det er rigtigt dem må jeg lave om til f.eks. byn
Avatar billede erikjacobsen Ekspert
17. oktober 2008 - 23:13 #7
Det er der ret beset ingen grund til. Det vil virke fint med: `by`
Men man kan selvfølgelig give den et andet navn.
Avatar billede torbenbs Nybegynder
17. oktober 2008 - 23:38 #8
Det har jeg så prøver men får denne fejl
Illegal mix of collations (latin1_general_ci,IMPLICIT) and (latin1_danish_ci,IMPLICIT) for operation '='

Jeg forstå ikke lige at der skal stå, gsperson.navn lige efter SELECT og selv om jeg fjerne det, gir det samme fejl.
og lige for en ordens skyld så er inputet ('".$znavne."') et ARRAY.
Avatar billede erikjacobsen Ekspert
18. oktober 2008 - 00:17 #9
De to felter du laver join på bør nok have samme collation. Du kan ikke putte er array ind på det sted - du skal have en kommasepareret liste af værdier.

"Jeg forstå ikke lige at der skal stå, gsperson.navn lige efter SELECT" - kan du være mere præcis med hvad du ikke forstår? Det er god og almindelig praksis at nævne de felter man har brug for, og ikke andre.
Avatar billede torbenbs Nybegynder
18. oktober 2008 - 00:59 #10
Det var mig der roder rundt i det, det var selvfølgeligt tabel1.navn, jeg maner, jeg er vist for træt nu, jeg prøver mig frem i morgen
Avatar billede torbenbs Nybegynder
27. oktober 2008 - 09:16 #11
Hej
Nu har jeg lagt i sengen, men jeg har så eksperimenteret med det, men jeg kan ikke få det til og virke, så snart jeg fjerner ('".$znavne."') så virke det.
så jeg har droppet det.
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
Computerworld tilbyder specialiserede kurser i database-management

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



IT-JOB

Udviklings- og Forenklingsstyrelsen

Erfaren teamleder til årsopgørelsen

Norli Liv og Pension

Brænder du for IT-udvikling…?

Netcompany A/S

Managing Architect

IT & Co ApS

IT-tekniker