Beste mensen,
Om het wat te vereenvoudigen hier een fictieve situatie, maar dat maakt het probleem wel duidelijk.
Ik heb de volgende tabellen in mySQL:
Klanten tabel
+----------+----------+------------+-------+----------+------------+
| Klant_Id | Voornaam | Achternaam | Adres | Postcode | Woonplaats |
+----------+----------+------------+-------+----------+------------+
Producten tabel
+----------+---------+-------+
| Klant_Id | Product | Prijs |
+----------+---------+-------+
Om beide tabellen te combineren maak ik gebruik van een query als:
SELECT klanten.voornaam, klanten.achternaam, producten.product FROM klanten LEFT JOIN producten ON klanten.klanten_id = producten.klant_id;
Het probleem is nu, dat er niet voor elke Klant_Id uit de Klanten-tabel een rij aanwezig is in de Producten-tabel.
Op dit moment is het zo dat ik alleen de rijen terug krijg, waarbij hij de beide tabellen kan combineren (dus waarbij in beide tabellen een rij met die Klant_Id te vinden is). Ik wil echter ook de rijen hebben waarbij in de Producten-tabel geen Klant_Id aanwezig is.
Hoe kan ik dit het beste doen?
Kan ik een extra iets meegeven in de query waardoor ook de andere rijen terug worden gegeven?
Bij voorbaat hartelijk dank voor de hulp.
- JOIN probleempjes
-
15-05-2006, 17:05 #1
- Berichten
- 178
- Lid sinds
- 19 Jaar
JOIN probleempjes
Laatst aangepast door Ardjan van Nuland : 15-05-2006 om 17:07
-
-
15-05-2006, 17:42 #2
- Berichten
- 173
- Lid sinds
- 19 Jaar
Met een left join krijg je normaal gezien alle rijen terug uit de linkse tabel gecombineerd met de rechtse, ook al bestaat de klant niet in de rechtse tabel....
-
15-05-2006, 17:49 #3
- Berichten
- 178
- Lid sinds
- 19 Jaar
Hmm, dat dacht ik dus ook gelezen te hebben...
Ik heb de volgende query:
SELECT f.*, p.post_time, p.post_username, u.username, u.user_id
FROM (( " . FORUMS_TABLE . " f
LEFT JOIN " . POSTS_TABLE . " p ON p.post_id = f.forum_last_post_id )
LEFT JOIN " . USERS_TABLE . " u ON u.user_id = p.poster_id )
WHERE f.codeblabla = '". $codeblabla ."'
AND p.codeblabla = '". $codeblabla ."'
AND u.codeblabla = '". $codeblabla ."'
ORDER BY f.cat_id, f.forum_order
Kun jij iets vinden? ;)
-
15-05-2006, 19:32 #4
- Berichten
- 625
- Lid sinds
- 19 Jaar
LEFT OUTER JOIN
-
15-05-2006, 19:41 #5
- Berichten
- 178
- Lid sinds
- 19 Jaar
Ik heb inmiddels een wijziging in de database aangebracht, waardoor het ook werkt.
Deze wijziging heeft in ieder geval geen negatief effect. Of het ook werkt zonder die databasewijziging kan ik helaas niet zeggen.
Bedankt allemaal voor de hulp. Het probleem is opgelost.
Plaats een
- + Advertentie
- + Onderwerp
Marktplaats
Webmasterforum
- Websites algemeen
- Sitechecks
- Marketing
- Domeinen algemeen
- Waardebepaling
- CMS
- Wordpress
- Joomla
- Magento
- Google algemeen
- SEO
- Analytics
- Adsense
- Adwords
- HTML / XHTML
- CSS
- Programmeren
- PHP
- Javascript
- JQuery
- MySQL
- Ondernemen algemeen
- Belastingen
- Juridisch
- Grafisch ontwerp
- Hosting Algemeen
- Hardware Info
- Offtopic