|
|
|
| у меня туговато с sql, помогите написать запрос)
есть две таблицы:
CREATE TABLE Cars( id INT PRIMARY KEY,
Name VARCHAR(10) )
CREATE TABLE Data( id INT PRIMARY KEY,
idCar INT FOREIGN KEY REFERENCES Cars(id ) ,
x INT,
y INT,
dt DATETIME)
Надо такой запрос, чтобы из второй таблицы на каждый idcar выдавалась единственная запись, у которой значение даты последнее.
запись: idCar x y dt
То есть в результате должно получиться столько записей, сколько разных idCar в таблице Data | |
|
|
|
|
|
|
|
для: drakonchik
(28.11.2008 в 14:06)
| | че та совсем заработался.. может так пойдет?
SELECT `cars`.*, `Data`.*, MAX(`Data`.`dt`) as `dt`
FROM `cars`
LEFT JOIN `Data` ON `Data`.`idCar` = `cars`.`id`
GROUP BY `Data`.`idCar`
|
| |
|
|
|
|
|
|
|
для: а-я
(28.11.2008 в 15:48)
| | че-то не то:
Invalid expression in the select list (not contained in either an aggregate function or the GROUP BY clause) | |
|
|
|
|
|
|
|
для: drakonchik
(28.11.2008 в 16:24)
| | хммм. а так:
SELECT `Data`.*, MAX(`Data`.`dt`) as `dt`, `cars`.*
FROM `Data`
LEFT JOIN `cars` ON `cars`.`id` = `Data`.`idCar`
GROUP BY `Data`.`idCar`
|
| |
|
|
|