Hallo, ik heb een vraag met betrekking tot joins. Ik verwijs van uit "test2" meerdere keren naar "test1". Op welke wijze moet ik dan mijn query in elkaar zetten.

Dit is wat ik tot nu toe heb, het werkt perfect maar ik vraag me af of dit niet makkelijker kan. Nu zijn het nog maar 3 verwijzingen maar in mijn project zullen het er minstens 30 worden.

<?php

include ('connect.php');
/*
test1
+--+----+
|id|naam|
+--+----+
| 1|bla1|
| 2|bla2|
| 3|bla3|
+--+----+

test2
+--+---+---+---+
|id|VB1|VB2|VB3|
+--+---+---+---+
| 1| 2 | 1 | 1 |
| 2| 3 | 3 | 1 |
| 3| 3 | 1 | 2 |
+--+---+---+---+

Joined
+--+---+-----+---+-----+---+-----+
|id|VB1|naam1|VB1|naam2|VB1|naam3|
+--+---+-----+---+-----+---+-----+
| 1| 2 | bla2| 1 | bla1| 1 | bla1|
| 2| 3 | bla3| 3 | bla3| 1 | bla1|
| 3| 3 | bla3| 1 | bla1| 2 | bla2|
+--+---+-----+---+-----+---+-----+
*/

$resultaat2 = mysqli_query($connect, "SELECT a.id, a.VB1, b.naam AS naam1, a.VB2, c.naam AS naam2, a.VB3, d.naam AS naam3
FROM test2 AS a
INNER JOIN test1 AS b
ON a.VB1 = b.id
INNER JOIN test1 AS c
ON a.VB1 = c.id
INNER JOIN test1 AS d
ON a.VB1 = d.id
");

while ($record2 = mysqli_fetch_array($resultaat2))
{
echo $record2['id'] . " - " . $record2['VB1'] . " - " . $record2['naam1'] . " - " . $record2['VB2'] . " - " . $record2['naam2'] . " - " . $record2['VB3'] . " - " . $record2['naam3'] . "<br>";
}

?>
Ja klopt. Als het aantal kolommen echt de eerste 10 eeuwen vast staat en het aantal niet te groot is dan kun je ze als kolommen naast elkaar opnemen. Een recent voorbeeld van een ander topic is een schaaktoernooi waarbij er altijd twee spelers tegelijk spelen. schaken doe je alleen met twee spelers en dat zal ook altijd zo blijven (lijkt me) dus dan kun je een kolom speler1 en een kolom speler2 maken.

Reageren