Ik heb een vraag in verband met de JOIN mogelijkheid binnen MYSQL.
Heb een tabel met klanten, een tabel met plaatsen en een tabel met landen. Een klant komt uit een bepaalde plaats (dus in tabel klanten is een veld voor plaatsID) en een plaats is van een bepaald land (tabel plaats heeft een veld landID).
Nu vroeg ik me af of het mogelijk is om in 1 SQL regel de resultaten op te halen van klanten uit een bepaald land. Kan ik dit met de join?
- Join mysql
-
24-05-2010, 16:59 #1
- Berichten
- 199
- Lid sinds
- 16 Jaar
Join mysql
Laatst aangepast door kevin simons : 24-05-2010 om 18:50
-
-
24-05-2010, 17:37 #2
- Berichten
- 506
- Lid sinds
- 16 Jaar
Daar heb je geen join voor nodig.
Gewoon zoiets:
PHP Code:SELECT *
FROM klanten
WHERE plaatsID IN
(
SELECT id
FROM plaatsen
WHERE landID =
(
SELECT id
FROM landen
WHERE naam='Nederland'
)
)
Laatst aangepast door Michel Willemse : 24-05-2010 om 17:45
-
24-05-2010, 18:26 #3
- Berichten
- 199
- Lid sinds
- 16 Jaar
Ik heb nu het volgende:
PHP Code:$query1 = mysql_query("SELECT * FROM tblklanten WHERE actief = '1' plaatsID IN
(
SELECT plaatsID
FROM tblplaats
WHERE landID =
(
SELECT landID
FROM tblland
WHERE land='".$_GET['land']."'
)
) ORDER BY klantID DESC LIMIT $offset, $rowsperpage");
while($row = mysql_fetch_array($query1)) {
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/cevimmo/domains/cevimmo.be/public_html/aanbod.php on line 810
Doe ik iets verkeerd?Laatst aangepast door kevin simons : 24-05-2010 om 18:42
-
24-05-2010, 19:08 #4
- Berichten
- 613
- Lid sinds
- 19 Jaar
Een query met join wordt zoiets:
PHP Code:SELECT *
FROM klanten k
INNER JOIN plaatsen p
ON p.plaatsID = k.plaatsID
INNER JOIN landen l
ON l.landID = p.landID
WHERE l.naam = 'Nederland'
-
24-05-2010, 19:20 #5
- Berichten
- 199
- Lid sinds
- 16 Jaar
Ik krijg vreemd genoeg geen error, maar ook geen enkel resultaat. Zou je dit eventueel met mijn bovenstaand voorbeeld kunnen doen? Met die where en order by etc bij?
-
24-05-2010, 19:25 #6
- Berichten
- 1.053
- Lid sinds
- 17 Jaar
Haakjes zetten. Errors checken.
-
24-05-2010, 19:29 #7
- Berichten
- 613
- Lid sinds
- 19 Jaar
De WHERE en ORDER BY kun je aan het einde toevoegen. We kunnen hier wel de complete code (werkend) gaan plaatsen, maar daar leer je zelf ook niet veel van en zit je de volgende keer weer met hetzelfde probleem.
-
24-05-2010, 19:31 #8
- Berichten
- 199
- Lid sinds
- 16 Jaar
Tuurlijk wil ik dit niet gewoon copy pasten, maar ook begrijpen hoor!
Alvast bedankt allen, het werkt nu wel. De JOIN heb ik gebruikt ;)
-
24-05-2010, 23:00 #9
- Berichten
- 165
- Lid sinds
- 16 Jaar
Die 1e code kan je gebruiken, vervang de IN door =, ik gok op een spelfout, ken 't ook niet & dit lijkt me logischer.
-
24-05-2010, 23:56 #10
- Berichten
- 95
- Lid sinds
- 18 Jaar
De error krijg je als je achter de functie mysql_query() gebruikt maakt van 'or die(mysql_error());'
DusPHP Code:mysql_query("SELECT * FROM blabla") or die(mysql_error());
-
25-05-2010, 00:09 #11
- Berichten
- 199
- Lid sinds
- 16 Jaar
Oké, tnx iedereen!
-
25-05-2010, 17:03 #12
- Berichten
- 506
- Lid sinds
- 16 Jaar
De reden dat hij het niet deed, was omdat er een stukje query toegevoegd was, zonder AND:
PHP Code:$query1 = mysql_query("SELECT * FROM tblklanten WHERE actief = '1' plaatsID IN
(
SELECT plaatsID
FROM tblplaats
WHERE landID =
(
SELECT landID
FROM tblland
WHERE land='".$_GET['land']."'
)
) ORDER BY klantID DESC LIMIT $offset, $rowsperpage");
PHP Code:$query1 = mysql_query("SELECT * FROM tblklanten WHERE actief = '1' AND plaatsID IN
(
SELECT plaatsID
FROM tblplaats
WHERE landID =
(
SELECT landID
FROM tblland
WHERE land='".$_GET['land']."'
)
) ORDER BY klantID DESC LIMIT $offset, $rowsperpage");
-
25-05-2010, 17:05 #13
- Berichten
- 199
- Lid sinds
- 16 Jaar
Bedankt Michel, ik ga eens bekijken hoe die IN juist werkt ;)
-
25-05-2010, 17:11 #14
- Berichten
- 506
- Lid sinds
- 16 Jaar
-
25-05-2010, 17:15 #15
- Berichten
- 199
- Lid sinds
- 16 Jaar
Ah ja, is inderdaad iets handig
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