Ich verfolge diese Links Antwort Join kann aber nicht meine ArbeitLEFT JOIN MySql
MYSQL Left Join last row of result
Ich habe zwei Tabellen
leicester
count area_id section toberth
1 LR WL 300
2 LR WL 301
3 ER SN 300
berthmove
count area_id timemove description toberth
1 LR 124 6R43 300
2 LR 126 5RT4 300
3 TR 128 6TF7 310
4 LR 121 6TT3 301
5 LR 122 5RR7 301
6 TR 127 7YY9 300
hier machen, ist mein Code
$stmt=$mysql_link->prepare("SELECT l.*,b.*
FROM leicester AS l
LEFT JOIN berthmove AS b ON l.toberth=b.toberth WHERE l.area_id=b.area_id AND l.section="WL"
LEFT JOIN berthmove AS b2 ON l.toberth=b2.toberth AND b.timemove<b2.timemove
WHERE b2.timemove is NULL LIMIT 1 ");
$stmt->execute();
Ich versuche, mit den Beschreibungen 5RT4 und 5RR7 zu enden, dh mit den Reihen 2 und 5 aus der Tabelle Liegeplatz. dh wählen Sie die Liegeplätze 300 und 301 aus der Tabelle "leicester" (dh sie befinden sich im Abschnitt WL) und finden Sie dann die Beschreibung gegen 300 und 301. Aber es kann nur die jeweils neueste Beschreibung (basierend auf timemove) sein. Überprüfen Sie auch, dass die area_id gleich ist.
Jede Hilfe, um Code der
Heres holen
foreach($stmt->fetchAll(PDO::FETCH_ASSOC) as $berths)
{
echo "hello";
$selectberth=$berths['toberth'];
$description=$berths['descr'];
echo $description;
echo $selectberth;
}
EDIT
aktualisiert bitte finden
$stmt=$mysql_link->prepare("SELECT l.*,b.*
FROM leicester AS l
LEFT JOIN berthmove AS b ON l.toberth=b.toberth
LEFT JOIN berthmove AS b2 ON l.toberth=b2.toberth AND b.timemove<b2.timemove
WHERE l.area_id=b.area_id AND l.section='WL' AND b2.timemove is NULL LIMIT 1 ");
$stmt->execute();
Die 'where' schließlich' join's geht. Sie können nur 1 'where' in einem' select' haben. Außerdem sollte 'AND l.section =" WL "' einen Parsing-Fehler verursachen und die Seitenladung unterbrechen. Verwenden Sie Fehlerberichte. – chris85
Habe das wo nach all dem bewegt. Ich erhalte einen Parsing-Fehler. Es sagt unerwartet T_string. Nicht sicher, was das Problem ist, obwohl – user2635961
Sie diesen Fehler vorher nicht erhalten haben? Lesen Sie den vollständigen Kommentar und korrigieren Sie die Anführungszeichen. – chris85