joinen 3 tabellen met 3de tabel > records
.. = tabel
... = row
[structuur]
..[user]
...[id]
...[naam]
...[achternaam]
..[adres]
...[id]
...[adres]
...[postcode]
...[woonplaats]
..[telefoon]
...[id]
...[vast]
...[mobiel]
Code (php)
1
SELECT * FROM xp_users U LEFT JOIN xp_adres ON U.us_userID=xp_adres.ad_ID LEFT JOIN xp_phone ON xp_adres.ad_ID=xp_phone.ph_ID;
nou stuit ik op het volgende,
wil ik dus van user.id
naam 1 x + achternaam goed
b.v. meerdere telefoon nummers tonen maar krijg telkens maar 1 query te zien
de eerste row
als iemand me kan helpen zou het echt te gek zijn, ook al op mysql.com na geslagen maar kwam er ook niet echt uit.
m.v.g Jack
Gewijzigd op 28/05/2010 15:54:11 door Tom Beuckelaere
Als ik het goed voor heb, zul je ergens gebruik moeten maken van een RIGHT JOIN of een INNER JOIN.
Ik kan ook volledig fout zitten maar je kunt misschien wel eens iets als dit gaan proberen:
Code (php)
1
SELECT * FROM xp_users U LEFT JOIN xp_adres ON U.us_userID=xp_adres.ad_ID RIGHT JOIN xp_phone ON xp_adres.ad_ID=xp_phone.ph_ID;
Code (php)
1
SELECT * FROM xp_users U LEFT JOIN xp_adres ON U.us_userID=xp_adres.ad_ID INNER JOIN xp_phone ON xp_adres.ad_ID=xp_phone.ph_ID;
Gewijzigd op 28/05/2010 16:01:05 door Tom Beuckelaere
Deze foreign keys gebruik je vervolgens in je joins. Dus:
Tom:
Jack,
Als ik het goed voor heb, zul je ergens gebruik moeten maken van een RIGHT JOIN of een INNER JOIN.
Ik kan ook volledig fout zitten maar je kunt misschien wel eens iets als dit gaan proberen:
Als ik het goed voor heb, zul je ergens gebruik moeten maken van een RIGHT JOIN of een INNER JOIN.
Ik kan ook volledig fout zitten maar je kunt misschien wel eens iets als dit gaan proberen:
Code (php)
1
SELECT * FROM xp_users U LEFT JOIN xp_adres ON U.us_userID=xp_adres.ad_ID RIGHT JOIN xp_phone ON xp_adres.ad_ID=xp_phone.ph_ID;
Tom,
Bedankt voor je reactie, heb het op beide manieren geprobeerd.
Helaas nog steeds een enkel telefoon nummer.
M.v.g. Jack
Dat is niet zo vreemd, de foreign keys ontbreken in je tabellen. De JOINs die je nu uitvoert slaan dus ook helemaal nergens op, zie mijn vorige reactie...
Blanche PHP op 30/05/2010 18:11:30:
Dat is niet zo vreemd, de foreign keys ontbreken in je tabellen. De JOINs die je nu uitvoert slaan dus ook helemaal nergens op, zie mijn vorige reactie...
Blance,
Heb indd ook jou idee in uit voering gebracht
okay dit heb ik nu,
.. = tabel
... = row
[structuur]
..[user]
...[id][PK]
...[naam]
...[achternaam]
..[adres]
...[id][PK]
...[ad_childID][FK]
...[adres]
...[postcode]
...[woonplaats]
FOREIGN KEY ad_childID REFERENCES user.ID
..[telefoon]
...[id][PK]
...[ph_childID][FK]
...[vast]
...[mobiel]
FOREIGN KEY ph_childID REFERENCES user.ID
/****************************************/
heb dus nu de volgende query:
$query="SELECT * FROM
xp_users U, xp_adres A, xp_phone P
WHERE U.us_userID = P.ph_childID AND P.ph_childID = U.us_userID = 1
JOIN A ON U.us_userID=A.ad_childID
JOIN P ON A.ad_childID=P.ph_childID;";
$query2=mysql_query($query) or die("Could not get query <br />Code : " . mysql_error());
$mysqlGet=mysql_fetch_object($query2);
!Result!
Code : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'JOIN A ON U.us_userID=A.ad_childID JOIN P ON A.ad_ID=P.ph_childID' at line 4 File line:90
/****************************************/
na enigszins wat puzzelen heb ik met deze query wel results, maar wel enkel
$query="SELECT * FROM xp_users U, xp_phone P, xp_adres A WHERE P.ph_childID=U.us_userID=P.ph_childID='1' AND A.ad_childID=U.us_userID=P.ph_childID='1' ORDER BY P.ph_nummer DESC";
$query2=mysql_query($query) or die("Could not get query <br />Code : " . mysql_error());
result:
$table[xp_user] 1 ]
Jack Meyer
$table[xp_adres]
XXXXstraat 13 9700 AA
Groningen
$table[xp_phone]
06-XXXXXXXX = ORDER BY P.ph_nummer DESC
!!vast nummer alleen op deze manier te zien
050-XXXXXXX = ORDER BY P.ph_nummer ASC.
/****************************************/
Okay heb wel een result maar zoals uit gelegd nog niet het gewenste,
Hopelijk heb ik wel iets in de betere richting gedaan M.B.T. FOREIGN KEY
M.V.G. J Meyer
Gewijzigd op 31/05/2010 14:32:29 door Jack Meyer
users
-----
id
naam
achternaam
adres
-----
id
user_id
adres
postcode
woonplaats
telefoon
-------
id
adres_id
telefoonnummer
type (vast, mobiel, etc...)
Om dat vervolgens de voor en achternaam met bijbehorende telefoonnummers van de user met id 99 op te halen, gebruik je deze query: