Join middels 3 tabellen
Landen
Landid
land
Plaatsen
plaatsid
plaats
landid
Stadions
stadionid
stadion
plaatsid
Nu lukt het mij wel om via een join (zie onder) een tabel te tonen met
stadionid - stadion - plaats
Wat ik graag wil is
stadionid - stadion - plaats - land
Is dit mogelijk met de tabellenopzet die ik heb gemaakt? En zo ja, hoe?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<table><td colspan=3>
<b>Stadions</b><br>
<?php
$sql = "SELECT * FROM stadions left outer join plaatsen on stadions.plaatsid = plaatsen.plaatsid order by stadion";
$result=mysqli_query($con,$sql);
while ($qry = mysqli_fetch_assoc($result))
{
extract($qry);
echo "<tr><td>$stadionid <td>$stadion <td>$plaats ";
}
?>
</table>
<b>Stadions</b><br>
<?php
$sql = "SELECT * FROM stadions left outer join plaatsen on stadions.plaatsid = plaatsen.plaatsid order by stadion";
$result=mysqli_query($con,$sql);
while ($qry = mysqli_fetch_assoc($result))
{
extract($qry);
echo "<tr><td>$stadionid <td>$stadion <td>$plaats ";
}
?>
</table>
Code (php)
1
SELECT s.stadionid,s.stadion,p.plaats,l.land FROM stadions AS as LEFT JOIN plaats AS p ON p.id = s.plaatsid LEFT JOIN landen AS l ON l.id = p.landid
Volgens mij moet dat met deze query kunnen.
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
SELECT s.stadionid
,s.stadion
,p.plaats
,l.land
FROM stadions s
, plaats p
, landen l
WHERE p.id = s.plaatsid
AND l.id = s.plaatsid
,s.stadion
,p.plaats
,l.land
FROM stadions s
, plaats p
, landen l
WHERE p.id = s.plaatsid
AND l.id = s.plaatsid
Gewijzigd op 01/01/1970 01:00:00 door John D
Met de join optie van Donhertog is het me nog niet gelukt. Met een paar kleine aanpassingen met die van John wel.
Code (php)
1
2
3
2
3
SELECT s.stadionid,s.stadion,p.plaats,l.land
FROM stadions s, plaatsen p, landen l
WHERE p.plaatsid = s.plaatsid and p.landid= l.landid
FROM stadions s, plaatsen p, landen l
WHERE p.plaatsid = s.plaatsid and p.landid= l.landid
Wat is in deze, en in het algemeen, nu het verschil tussen de JOIN en de Where optie?
http://en.wikipedia.org/wiki/Join_%28SQL%29
Ik ben van de oldskool en gebruik altijd de implicit join notation.
Er is geen praktisch of technisch verschil in de joins. Er is slechts een verschil in opschrijven, de notatie, en de ene heet explicit join en de ander heet implicit join. Deze nieuwere (ANSI) methode inner, left, right enzovoort wordt tegenwoordig meer gebruikt in leermethoden en wordt dan ook meer en meer toegepast. Ik ben van de oldskool en gebruik altijd de implicit join notation.
Gewijzigd op 01/01/1970 01:00:00 door John D