Ich möchte Zeilen in einer Tabelle mit Zeilen in einer anderen Tabelle übereinstimmen und jede Zeile sollte nur einmal übereinstimmen. Ich habe die folgende Abfrage konstruiert, die in jeder anderen Hinsicht funktioniert, außer dass ich es nicht weiter optimieren kann, so dass eine Zeile nur einmal ausgewählt werden kann.Ich möchte Zeilen in einer Tabelle mit Zeilen in einer anderen Tabelle übereinstimmen und jede Zeile sollte nur einmal übereinstimmen
try{$results_pref_school1 = $db->query('SELECT mps.mps_client_ec_no, mcs.mcs_client_ec_no, mps.mps_school_id, mcs.mcs_school_id
FROM match_pref_schools AS mps
INNER JOIN match_current_schools AS mcs
ON mps.mps_school_id = mcs.mcs_school_id
AND mcs.mcs_id IN (SELECT MIN(mcs.mcs_id)
FROM match_current_schools AS mcs
GROUP BY mcs.mcs_school_id)
ORDER BY mcs.mcs_id');
}catch (Exception $e){
echo 'Failed to retrieve matched preferred school';
exit;
}
$matched_school = $results_pref_school1->fetchAll(PDO::FETCH_ASSOC);
A var_dump von $ matched_school produziert:
Array
(
[1] => Array
(
[mps_client_ec_no] => REG5
[mcs_client_ec_no] => GL98888
[mps_school_id] => 6
[mcs_school_id] => 6
)
[2] => Array
(
[mps_client_ec_no] => TAS4752
[mcs_client_ec_no] => ALF1252
[mps_school_id] => 14
[mcs_school_id] => 14
)
[3] => Array
(
[mps_client_ec_no] => MAP002
[mcs_client_ec_no] => ALF1252
[mps_school_id] => 14
[mcs_school_id] => 14
)
)
In dem obigen Ergebnis ich ALF1252 wollte nur einmal abgestimmt werden.
http://sqlfiddle.com/#!9/f47c7/1 – Parts
@kuldeed. Ich änderte meine Tabellen und fragte wie empfohlen, aber ich bekomme immer noch die gleichen Ergebnisse. Überprüfen Sie hier: http://sqlfiddle.com/#!9/8098cb/1 – Parts
@Parts Ende des Ergebnisses, was Sie ausgeben möchten? Bitte sagen Sie mir –