1. site_widgets (widget_id, widget_name)
2. widget_content (content_id, widget_id, heading, content) Relatie site_widgets.widget_id => widget_content => widget_id
3. widget_photos (photo_id, rel_id, photo) Relatie: widget_content.content_id => widget_photos.rel_id
Ik ben nu bezig met het CMS gedeelte voor deze sectie. Het probleem dat ik ervaar is dat, alhoewel de meeste widgets gewoon een rij in alle drie de tafels hebben, er twee widgets zijn die 3 rijen hebben in de widget_content en widget_photos tafels. Voorbeeld:
Tafel site_widgets:
widget_id 1 | widget_name Opening dates
Tafel widget_content:
content_id 1 | widget_id 1 | heading Spring season etc etc
content_id 2 | widget_id 1 | heading Summer season etc etc
content_id 3 | widget_id 1 | heading Spring season etc etc
Tafel widget_photos:
photo_id 1 | rel_id 1 | spring.jpg
photo_id 2 | rel_id 2 | summer.jpg
photo_id 3 | rel_id 3 | fall.jpg
Ik weet echter niet hoe de query er uit moet zien zodat zowel de standaard widgets (een rij in de drie tafels als de afwijkende widgets zoals hierboven het juiste resultaat opleveren:
Ik heb het volgende geprobeerd
public function get_widget_details($string)
{
$sql = "SELECT SW.widget_name
, SW.url_string
, WC.*
, WP.photo
FROM site_widgets SW
LEFT
JOIN widget_content WC
ON SW.widget_id = WC.widget_id
LEFT
JOIN widget_photos WP
ON WC.content_id = WP.rel_id
WHERE SW.url_string = ?";
$stmt = $this->pdo->prepare($sql);
$stmt->execute(array($string));
return $stmt->fetch();
}
Ik heb het met een RIGHT JOIN geprobeerd maar krijg het niet voor elkaar
Ziet iemand wat ik fout doe? Alvast bedankt