所以我有两个使用MySql的表; Owners
和Cars
,其中所有者拥有生日,汽车有里程记录。表格看起来像这样:
Owners:
+-------+--------------+
| Field | Type |
+-------+--------------+
| id | varchar(10) |
| birth | datetime |
| name | varchar(100) |
+-------+--------------+
Cars:
+--------------+-------------+
| Field | Type |
+--------------+-------------+
| plate | varchar(6) |
| mileage | int(11) |
| owner* | varchar(10) | //fk references Owners
+--------------+-------------+
我希望能够使用SQL选择最年轻的所有者和他们的里程数。我设法让车主成为最年轻的车,但我不知道如何加入表格并创建一个包含车主属性和里程属性的表格。
SELECT *
FROM Cars
WHERE owner = (SELECT id
FROM Owners
WHERE birth = (SELECT MAX(birth) FROM Owners));
我所说的归还汽车,例如。
+--------+---------+------------+
| plate | mileage | owner |
+--------+---------+------------+
| KFO405 | 8109 | 9912218527 |
+--------+---------+------------+
但我想这样:
+------------+---------------------+-----------------------+------------+
| id | birth | name | milage |
+------------+---------------------+-----------------------+------------+
| 9912218527 | 1999-12-21 00:00:00 | Marva Rocha | 8109 |
+------------+---------------------+-----------------------+------------+
感谢任何帮助!
答案 0 :(得分:2)
获得最年轻的老板和里程
SELECT A.ID, A.BIRTH, A.NAME, B.MILAGE
FROM Owners A
INNER JOIN Cars B
ON A.ID=B.owner
ORDER BY A.birth ASC LIMIT 1;
答案 1 :(得分:1)
您基本上首先加入表格,然后定义标准(出生):
SELECT Owners.name,
Owners.birth,
Cars.plate,
Cars.milage
FROM Owners
JOIN Cars ON Cars.owner = Owners.id
WHERE Owners.birth =
(SELECT MAX(birth)
FROM Owners)