Avatar billede blackscorpion Nybegynder
03. marts 2007 - 18:11 Der er 23 kommentarer og
1 løsning

Hente fra 2 tabeller i én query

Hej E.

Er det muligt at hente fra 2 tabeller i én query ?

det er til en søgning.

f.eks. så der søges i produkt navn i tabel1, og samtidigt i beskrivelse i tabel2 ?
Avatar billede simplus Nybegynder
03. marts 2007 - 18:18 #1
Avatar billede simplus Nybegynder
03. marts 2007 - 18:20 #2
f.eks.

SELECT table_1.row_1, table_2.row_1
FROM table_2
LEFT JOIN table1 ON table_1.row_1 = table_2.row_1
WHERE table_1.row_1 = '$some_value'
Avatar billede coderdk Praktikant
03. marts 2007 - 18:22 #3
SELECT produktnavn, beskrivelse FROM tabel1 AS t1 INNER JOIN tabel2 AS t2 ON t1.produktid = t2.produktid

Evt. http://www.w3schools.com/sql/sql_join.asp

:)
Avatar billede blackscorpion Nybegynder
03. marts 2007 - 18:36 #4
har kigget på join... og fatter hat af det...

SELECT produktnavn, beskrivelse FROM tabel1 AS t1 INNER JOIN tabel2 AS t2 ON t1.produktid = t2.produktid

fra AS t1 INNTER JOIN... osv, er jeg lost. :S
Avatar billede blackscorpion Nybegynder
03. marts 2007 - 18:46 #5
SELECT table1.field, table2.field FROM table1, table2 where table1.field like '%$search%' OR table2.field like '%$search%'

giver vanvittigt mange results, skønt der kun skulle være 2. :S
Avatar billede blackscorpion Nybegynder
03. marts 2007 - 19:03 #6
det her er til at få grå hår af...
Avatar billede blackscorpion Nybegynder
03. marts 2007 - 19:08 #7
okey den virker.. bare phpmyadmin der syntes det er sjovt at udskifte tingene. :S
Avatar billede blackscorpion Nybegynder
03. marts 2007 - 19:08 #8
men coderdk det var dit link der hjalp mig på rette spor, så smid et svar. :)

og simplus, tak for din tid og hjælp. :)
Avatar billede blackscorpion Nybegynder
03. marts 2007 - 19:11 #9
WOW...

hvis jeg søger på The i databasen med den kode, så smider den næsten 350.000 linier kode ud. lol :D
Avatar billede blackscorpion Nybegynder
03. marts 2007 - 19:17 #10
hmm noget er stadig galt. :(
Avatar billede blackscorpion Nybegynder
03. marts 2007 - 19:22 #11
hvis der f.eks. står The i samme felt f.eks. 15 gange, så får jeg 15 output.. hvordan slipper jeg af med det ?

har prøvet med en distinct *
Avatar billede coderdk Praktikant
03. marts 2007 - 19:34 #12
Hvilket felt binder de to sammen - Hvad hedder ID-feltet er i begge tabeller?
Avatar billede coderdk Praktikant
03. marts 2007 - 19:35 #13
Og hvikle felter vil du søge i?
Avatar billede blackscorpion Nybegynder
03. marts 2007 - 19:37 #14
id..

er igang med at lave en database over mine film, og i f.eks. Pitch Black og The Chronicles of Riddick, hedder hovedpersonen Riddick.

i stedet for bare at søge på titelen, så vil jeg også gerne søge i beskrivelsen.
Avatar billede blackscorpion Nybegynder
03. marts 2007 - 19:37 #15
pt ser min sql sådan her ud:

$sql = "SELECT distinct * FROM movies, movie_details WHERE movies.title LIKE '%".$query."%' OR movie_details.description like '%". $query . "%' group by movies.title asc";
Avatar billede blackscorpion Nybegynder
03. marts 2007 - 19:42 #16
og kan se at den spytter resultatet ud lige så mange gange som der er film i databasen... dvs. hvis den finder 2 hits, så spytter den det ud 2 gange osv... :(
Avatar billede blackscorpion Nybegynder
03. marts 2007 - 19:43 #17
og lige så snart at jeg fjerner at den skal søge i movie_details, så virker alt normalt, bare uden søgning i details. :(
Avatar billede coderdk Praktikant
03. marts 2007 - 19:46 #18
Prøv:

$sql = "SELECT m.title, d.description FROM movies AS m INNER JOIN movie_details AS d ON m.id = d.id WHERE m.title LIKE '%" . $query . "%' OR d.description LIKE '%" . $query . "%'";
Avatar billede blackscorpion Nybegynder
03. marts 2007 - 19:54 #19
hmm... det virker LANGT bedre.. MEN

hvis jeg søger på Riddick, kommer pitch black, og chronicles of riddick frem.. PLUS The Core... og der står IKKE RIDDICK nogle steder forbundet med den film. :D
Avatar billede blackscorpion Nybegynder
03. marts 2007 - 19:58 #20
og smider jeg den igennem phpmyadmin, får jeg et helt andet resultat... :S
Avatar billede blackscorpion Nybegynder
03. marts 2007 - 20:01 #21
har løst den..

m.id = d.id

skal være:

m.movie_id = d.movie_id

eneste 2 ting i databasen, foruden titlen, der er 100% ens.
Avatar billede blackscorpion Nybegynder
03. marts 2007 - 20:03 #22
coderdk, igen igen igen redder du dagen... smid et svar. :)
Avatar billede coderdk Praktikant
03. marts 2007 - 21:12 #23
Ah :)
Avatar billede blackscorpion Nybegynder
03. marts 2007 - 21:34 #24
:P
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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