login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Join probleem

Offline Jensie180 - 06/10/2006 15:34 (laatste wijziging 06/10/2006 15:37)
Avatar van Jensie180Nieuw lid Hey iedereen,

Ik probeer 2 tabellen te joinen, maar zonder het "ON" attribuut. Ik wil dus gewoon de gegevens weergeven van beide tabellen. Ik heb deze query nu:

  1. SELECT movies.Title, merchandise0.MerchID FROM movies INNER JOIN merchandise0


Maar dat geeft deze data weer:

  1. (
  2. [0] => Array
  3. (
  4. [Title] => Snow White and the Seven Dwarfs
  5. [MerchID] => 1
  6. )
  7.  
  8. [1] => Array
  9. (
  10. [Title] => Snow White and the Seven Dwarfs
  11. [MerchID] => 2
  12. )
  13.  
  14. [2] => Array
  15. (
  16. [Title] => Snow White and the Seven Dwarfs
  17. [MerchID] => 3
  18. )
  19.  
  20. [3] => Array
  21. (
  22. [Title] => Snow White and the Seven Dwarfs
  23. [MerchID] => 4
  24. )
  25.  
  26. [4] => Array
  27. (
  28. [Title] => Snow White and the Seven Dwarfs
  29. [MerchID] => 5
  30. )
  31. )


Normaal gezien zouden 4 van deze arrays geen "Title" inhoud mogen hebben en 1 geen "MerchID" inhoud, maar toch worden deze weergegeven? Ik maak de array trouwens zo:

  1. <?php
  2. $query_content = mysql_query("SELECT movies.Title, merchandise0.MerchID FROM movies INNER JOIN merchandise0");
  3.  
  4. $ContentData = array();
  5.  
  6. while ($ar = mysql_fetch_array($query_content, MYSQL_ASSOC))
  7. {
  8. $ContentData[] = $ar;
  9. }
  10. ?>


Heeft iemand een idee hoe ik dit goed kan krijgen? Alvast bedankt!

7 antwoorden

Gesponsorde links
Offline Wijnand - 06/10/2006 15:41
Avatar van Wijnand Moderator Ik heb het niet begrepen....

Maar, een join zonder de ON dat kan in principe niet. Een join moet een voorwaarde hebben, dus waarop moet hij joinen.

Wat wil je precies bereiken en hoe wil je het eruit hebben etc.?
Offline Simon - 06/10/2006 15:43
Avatar van Simon PHP expert
  1. SELECT movies.Title, merchandise0.MerchID FROM movies, merchandise0

zoiets?
Offline Thomas - 06/10/2006 15:49
Avatar van Thomas Moderator Mja, maar dat is dan compleet niet gerelateerd aan elkaar - dat moet je dan niet in 1 query zetten, want daar komt grote onzin uit.

Er moet een verband zijn tussen de twee tabellen. Als dat er niet is, moet / hoef je niet (te) proberen deze op een of andere manier aan elkaar te fietsen...

Dus: Wat Wijnand vroeg: Hoe zijn de gegevens aan elkaar gerelateerd en wat wil je uiteindelijk met je query opvragen?
Offline Jensie180 - 06/10/2006 15:49 (laatste wijziging 06/10/2006 15:51)
Avatar van Jensie180 Nieuw lid Ik wil eigenlijk gewoon de tabellen samenvoegen, en niets van de tabellen moet gelijk zijn... Ik wil de merchandise en movies tabel samenvoegen om uiteindelijk al de inhoud (content) te krijgen van mijn site. Momenteel zijn dit in totaal 6 items... 1 item in de movies tabel en 5 items in de merchandise tabel. Ik wil dat de array er zo uitziet:
  1. (
  2. // Dit is dus die éne van de "movies" tabel
  3. [0] => Array
  4. (
  5. [Title] => Snow White and the Seven Dwarfs
  6. [MerchID] => NULL
  7. )
  8. // De volgende zijn de items van de "merchandise" tabel
  9. [1] => Array
  10. (
  11. [Title] => NULL
  12. [MerchID] => 1
  13. )
  14.  
  15. [2] => Array
  16. (
  17. [Title] => NULL
  18. [MerchID] => 2
  19. )
  20.  
  21. [3] => Array
  22. (
  23. [Title] => NULL
  24. [MerchID] => 3
  25. )
  26.  
  27. [4] => Array
  28. (
  29. [Title] => NULL
  30. [MerchID] => 4
  31. )
  32. [4] => Array
  33. (
  34. [Title] => NULL
  35. [MerchID] => 5
  36. )
  37. )


[EDIT] De Merchandise tabel heeft een MovieID_FK kolom (een foreign key van de MovieID kolom in de "movies" tabel), maar dat is de enige relatie tussen de 2 tabellen. Maar voor ze samen te voegen moeten ze toch niet gerelateerd zijn?
Offline Thomas - 06/10/2006 16:09
Avatar van Thomas Moderator Aha, je wilt dus een lijst van merchandise opstellen bij een bepaalde film? Dus gegeven de film Sneeuwwitje wil je de bijbehorende merchandise hebben? Dat lijkt me toch wel een verband...
Offline Jensie180 - 06/10/2006 16:21 (laatste wijziging 06/10/2006 16:21)
Avatar van Jensie180 Nieuw lid Neen, ik wil deze query voor mijn administratiepaneel... Daar heb ik een onderdeel waar ik alle inhoud ga hebben van mijn site in een lijst. Hiervoor moet ik dus alle inhoud tabellen (zowel movies als merchandise) samenvoegen zodat zowel de films als de merchandise in die lijst getoont wordt... Die relatie tussen de 2 tabellen is voor de site zelf... Daar selecteer ik inderdaad de bijhorende merchandise bij een bepaalde film.

Is het nu al wat meer begrijpbaar?
Offline Thomas - 06/10/2006 16:30 (laatste wijziging 06/10/2006 16:31)
Avatar van Thomas Moderator Niet echt .

Ik neem aan dat je phpMyAdmin kent? Lijkt me wat makkelijker dan zoiets zelf schrijven?

Ik begrijp er eerlijk gezegd hoe langer hoe minder van .

Voor wie is dat paneel bedoeld?
Wat zou je concreet met dat paneel moeten kunnen?
En waarom zou je al die (ogenschijnlijk) ongerelateerde data achter elkaar willen dumpen?

phpMyAdmin lijkt mij in jouw geval de beste oplossing?

EDIT: Om toch te proberen antwoord op je vraag te geven:
Waarom maak je niet gewoon meerdere queries die alle gegevens opvragen?
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.366s