我试图在我的数据库(MySQL)上实现查询。
例如:
表1
id,code,name
1,1,Tom
2,1,Jerry
3,1,Peter
4,2,Charles
表2
code,name
1,alpha
2,beta
3,gamma
我需要使用最大代码从表1中选择所有值,但是从table2替换该列(table1.code)以获取最大值代码(table2.code)。
Desidered output
id,code,name
4,3,Charles
如果选择最大值,我知道:
SELECT * FROM Table1 WHERE code = (SELECT MAX(code) FROM Table1)
如何更换?
SELECT REPLACE(Table1.code, SELECT * FROM Table1 WHERE code = (SELECT MAX(code) FROM Table1), SELECT code FROM Table2 WHERE code = (SELECT MAX(code) FROM Table2)) * FROM Table1 WHERE code = (SELECT MAX(code) FROM Table1)
我很困惑:c 谢谢你的阅读!
答案 0 :(得分:2)
试试这个。
SELECT id,
(SELECT Max(code)
FROM table2),
name
FROM table1 A
WHERE code = (SELECT Max(code) code
FROM table1)
答案 1 :(得分:0)
您不必替换值,而是可以选择两个顶值
Select Top 1 id, (Select max(code) from table2), name
from Table1 order by code desc
如果您想拥有所有最大代码值,可以尝试
SELECT id, (SELECT max(code) from Table2), name
FROM Table1 WHERE code = (select max(code) from Table1)
答案 2 :(得分:-3)
您可以使用子查询从表2中找到max(代码)
Select id,(select max(code) from table2), name
from table1 order by code desc limit 1
如果有更多行拥有最大代码,您可以使用下面的代码
Select id,(select max(code) from table2), name
from table1 where code = (select max(code) from table1)