Въпрос за SELECT от две таблици

angel_plv

Registered
Здравейте имам следния въпрос:

Имам две таблици. В първата имам ИД и Име на шофьор, а във втората се съдържат данни за колата и стар и нов шофьор. Като колоните стар и нов шофьор сочат различни ИД в първата таблица.
Въпроса ми е: как да напиша SELECT, който да ми връща колата, името на стар шофьор, името на нов шофьор?
 
[sql]SELECT cars.id, old_driver.name, new_driver.name
FROM cars
LEFT JOIN drivers old_driver ON old_driver.id = cars.old_driver_id
LEFT JOIN drivers new_driver ON new_driver.id = cars.new_driver_id
GROUP BY cars.id
[/sql]

Където drivers и cars са ти имената на таблиците, old_driver_id и new_driver_id са колоните в таблицата cars.

edit: typo в името на таблиците old_drivers и new_drivers
 
Здравей, ако правилно съм разбрал нещо такова
[sql]
SELECT car.*, oldDriver.name AS oldDeriverName, newDriver.name AS newDriverName FROM car
LEFT JOIN driver oldDriver ON oldDriver.id = car.oldDriverId
LEFT JOIN driver newDriver ON newDriver.id = car.newDriverId
WHERE car.id = ?
[/sql]

Поздрави.

едит. изпреварили са ме :)
 
Благодаря за отговорите, но нещо не мога да разбера. Аз имам една таблица cars със следните колони: carid,olddr,newdr,newdrdate. И таблица drivers със следните колони: drid,drname. в таблица cars имам следния ред 5,2,3,31-07-2015. Искам да получа като резултат, име_на_стар, име_на_нов, дата.
 
PHP:
<?php
$db = new PDO("mysql:host=localhost;dbname=test", 'root', '1234');

$query = $db->query("SELECT cars.*, old.drname as oldDriver, new.drname as newDriver
FROM cars
LEFT JOIN drivers AS old ON cars.olddr = old.drid
LEFT JOIN drivers AS new ON cars.newdr = new.drid
WHERE cars.carid='1'");

$fetch = $query->fetch(PDO::FETCH_OBJ);

echo '
Car ID: '. $fetch->carid .'<br>
Old Driver\'s name: '. $fetch->oldDriver .'<br>
New Driver\'s name: '. $fetch->newDriver .'<br>
New Driver since: '. $fetch->newdrdate;
?>
 

Back
Горе