Mysql:更新表,选择另一个表的最大值

时间:2017-01-20 14:58:02

标签: mysql

我的MySql服务器中有2个不同的数据库。

First table DB1.contacts:

id | name | code
1  | foo  | 157
2  | foo  | 95
3  | foo  | 210

Second table DB2.paperworks:

id | name | contact_id
1  | foo  | 0

我想更新DB2.paperworks,设置DB1.contacts.contacts表的DB2.paperworks.contact_id = max(DB1.contacts.code),其中DB2.paperworks.name = DB1.contacts.name

我希望的输出应该是:

查询DB2.paperworks之后的第二个表:

id | name | contact_id
1  | foo  | 210

这是我的疑问:

UPDATE DB2.paperworks
JOIN DB1.contacts
ON DB2.paperworks.name = DB1.contacts.name
SET DB2.paperworks.contact_id = DB1.contacts.code

我不明白如何写che" MAX(代码)"条件。你能帮帮我吗?

2 个答案:

答案 0 :(得分:5)

一种稍微简单的update形式可以解决这个问题:

UPDATE DB2.paperworks
SET DB2.paperworks.contact_id = (
    select max(DB1.contacts.code)
    from DB1.contacts
    where DB1.contacts.name = DB2.paperworks.name
    group by DB1.contacts.code
);

答案 1 :(得分:0)

试试这个:

public function boot()
{
    view()->composer('layouts.master', function($view)
    {
        $view->with('variable', 'myvariable');
    });
}