我有两张桌子。
| ID | NAME |
|----|------|
| 1 | aaa |
| 2 | aaa |
| 3 | aaa |
| 4 | bbb |
| 5 | bbb |
| ID | DATE |
|----|----------|
| 1 | 12/07/10 |
| 2 | 12/07/13 |
| 3 | 12/07/16 |
| 4 | 12/07/08 |
| 5 | 12/07/20 |
请帮助我,我不知道SELECT MAX ID
中{strong> table1
1>} <{1}} date
>
例如结果应为:
表示“aaa”:表2中的ID 3
代表“bbb”:来自table2的ID 5
我正在尝试这样的事情:
table2
但它不起作用......你有什么想法吗?
答案 0 :(得分:0)
我尝试使用此查询获取MAX日期。
注意:在表格中,日期格式应为(Y-m-d),并且字段应设置为日期以便操作操作
表格-1 (名称:test1)
表格 - 2 (名称:test2)
从其他表中获取MAX
SELECT MAX(dates) FROM test2 JOIN test1 WHERE test1.name='aaa'
<强>输出强>
希望这个查询可以解决您的问题。
答案 1 :(得分:0)
您需要为联接添加其他条件(t1.id = t2.id
):
SELECT MAX(DATE)
FROM table2 t2, table1 t1
WHERE t1.NAME = "aaa"
AND t1.id = t2.id
但请 - 请勿使用逗号加入 - 请改用明确的JOIN语法:
SELECT MAX(DATE)
FROM table2 t2
JOIN table1 t1
ON t1.id = t2.id
WHERE t1.NAME = "aaa"
您还可以使用GROUP BY name
一次获取所有姓名的所有最长日期:
SELECT t1.NAME, MAX(t2.DATE)
FROM table2 t2
JOIN table1 t1
ON t1.id = t2.id
GROUP BY t1.NAME
答案 2 :(得分:0)
select ID from Table1 where date= (select max(date) from T2 where name= 'aaa'
我没有完全找到你。但我认为这就是你想要的......如果你将这两张桌子作为一张桌子,那么它就可以作为魅力。
或者这个,就像你要求的两张表一样
SELECT T1.Id FROM T1 INNER JOIN T2
ON T1.Id = T2.Id
where T2.date = (select max(T2.date) from T1 where T1.name= 'aaa')