Avatar billede jedimaster Nybegynder
14. maj 2006 - 12:18 Der er 12 kommentarer og
1 løsning

Hent fra flere tabeller

Jeg har følgende tabeller ,der hænger sammen. Nu ønsker jeg at trække nogle data ud - men kun hvor den indtastede stregkoden =  barcode i "hovedtabellen":

tabel_movie:
id
barcode
titel
director
selskab_id
year
subjekt_code

tabel_director:
id
directorname

tabel_director_movie:
id
movie_id
director_id

tabel_selskab:
id
selskab

tabel_subjekt:
id
subjekt_group
subjekt_code

Listen jeg vil have ud skal indeholde følgende info:
Film nummer (barcode)
Titel (titel)
Instruktør (director)
Filmselskab (selskab)
Årgang (year)
Emnekode (subject_code)
Emnegruppe (subject_group)


Mange takker.
Avatar billede beef12 Nybegynder
14. maj 2006 - 12:45 #1
Føj for en navngivningsstandard du har valgt :-) Er det danglish ? :-)
Jeg gætter forøvrigt på at det MySql du spørger om da du koder i PHP.

Her:
select
tabel_movie.id,
tabel_movie.titel,
tabel_selskab.selskab,
tabel_movie.year,
tabel_movie.subjekt_code,
tabel_subjekt.subjekt_group

from
tabel_movie,
tabel_director_movie,
tabel_director,
tabel_selskab,
tabel_subjekt

where
tabel_movie.id = tabel_director_movie.movie_id
and tabel_diector.id = tabel_director.id
and tabel_movie.selskab_id = tabel_selskab.id
and tabel_movie.subjekt_code = tabel_subjekt.subjekt_code
Avatar billede beef12 Nybegynder
14. maj 2006 - 12:48 #2
nå jo, og så var der noget med barcode... tilføj dette til denne linie til aller sidst:
and tabel_movie.barcode = 'indsæt din stregkode eller php-variabel her'
Avatar billede beef12 Nybegynder
14. maj 2006 - 12:49 #3
Hov der sneg sig lige en stavefejl ind i anden linie i where-delen:
diector skal lige ændres til direktor...
Avatar billede jedimaster Nybegynder
14. maj 2006 - 13:01 #4
Many danke - jeg ved navne er lidt åndsvage. :-D Jeg tror faktisk jeg selv har lavet et par stavefejl, da jeg indtastede spørgsmålet. Dem retter jeg lige når jeg sætter din kode ind ;-)

Jeg prøver lige.
Avatar billede jedimaster Nybegynder
14. maj 2006 - 13:05 #5
Jeg syntes ikke director er med i SELECT delen? Er det rigtigt???
Avatar billede beef12 Nybegynder
14. maj 2006 - 15:54 #6
Nej, den glemte jeg... men det er temmelig simpelt at tilføje:

select
tabel_movie.id,
tabel_movie.titel,
tabel_director.directorname, -- tilføj denne linie
tabel_selskab.selskab,
tabel_movie.year,
tabel_movie.subjekt_code,
tabel_subjekt.subjekt_group
Avatar billede jedimaster Nybegynder
16. maj 2006 - 21:37 #7
Hey. Det virker beef12.
Jeg har dog lidt problemer med at få vist det hele, da der nogle gange mangler nogle data - feks skrives nogle gange kun film titlen ind. Hvad gør jeg da?? Så er alle betingelserne jo ikke opfyldt.
Avatar billede beef12 Nybegynder
16. maj 2006 - 22:43 #8
Det skyldes sandsynligvis at der er rod i dine data - eller måske din php-kode. Det er meget svært for mig at debugge når jeg ikke kan se nogen af delene.

Prøv at dumpe lidt data fra dine tabeller.
Avatar billede jedimaster Nybegynder
17. maj 2006 - 18:30 #9
Jeg har lige slette det jeg har prøvet at indtaste, men her er en noget af det jeg ville skrive ind. Håber du kan bruge det - jeg har iøvrigt rettet mit danglich lidt til ;-)

tabel_movie:
id | barcode | titel | company_id | year | subject_code (Samt flere der ikke er interessante her)
---------------------------------------------------------------------------
1 | 001000 | The Shining |  | 1980 | G
2 | 001001 | Jeg, mig og Irene | 2 | 2000 | A
3 | 001002 | Blandet bånd 1 |  |  | E

tabel_director:
id | directorname
----------------------
5 | Stanley Kubrick
10 | Bobby Farrelly
11 | Peter Farrelly

tabel_director_movie:
id | movie_id | director_id
-------------------------------
1 | 1 | 5
2 | 2 | 10
3 | 2 | 11

tabel_company:
id | company
-----------------
2 | 20TH CENTURY FOX


tabel_subject:
id | subject_group | subject_code
---------------------------------------
4 | Gyser | G
1 | Komedie | K
2 | Egne bånd | E
Avatar billede beef12 Nybegynder
17. maj 2006 - 21:27 #10
Ok - og hvis du bruger min sql-sætning jeg gav dig, hvordan ser så dit output ud så?
Jeg gætter på at du kun får en række (Jeg, mig og Irene) ud idet du nok joiner ud til company, som ikke altid har et company id.
Avatar billede beef12 Nybegynder
17. maj 2006 - 21:31 #11
Prøv med dette:

select
tabel_movie.id,
tabel_movie.titel,
tabel_selskab.selskab,
tabel_movie.year,
tabel_movie.subjekt_code,
tabel_subjekt.subjekt_group

from
tabel_movie,
  inner join tabel_director_movie
    inner join tabel_director
      on tabel_director.id = tabel_director.id
  on tabel_movie.id = tabel_director_movie.movie_id
 
  left join tabel_selskab
    on tabel_movie.selskab_id = tabel_selskab.id

  inner join tabel_subjekt
    on tabel_movie.subjekt_code = tabel_subjekt.subjekt_code

where
tabel_movie.barcode = 'indsæt din stregkode eller php-variabel her'
Avatar billede jedimaster Nybegynder
29. juni 2006 - 15:35 #12
Jeg modificerede den lidt, og så virkede den. SÅ beef12, du fortjener dine point. Tak
Avatar billede beef12 Nybegynder
29. juni 2006 - 18:40 #13
Godt at høre :-)
Held og lykke med projektet
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