选择表并从另一个表中按值替换列

时间:2014-11-19 20:17:17

标签: mysql sql database select

我试图在我的数据库(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 谢谢你的阅读!

3 个答案:

答案 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)