MySQL使用第二个表中的max和其他参数左键连接两个表
拥有这些表并需要将它们连接起来以创建最终列表MySQL使用第二个表中的max和其他参数左键连接两个表,mysql,left-join,Mysql,Left Join,拥有这些表并需要将它们连接起来以创建最终列表 accounts ----------------------------------------------------- | COMPANY_ID | COMPANY | ACCOUNT_OWNER | ----------------------------------------------------- | 1 | bmw | 100 | --
accounts
-----------------------------------------------------
| COMPANY_ID | COMPANY | ACCOUNT_OWNER |
-----------------------------------------------------
| 1 | bmw | 100 |
-----------------------------------------------------
| 2 | audi | 100 |
-----------------------------------------------------
| 3 | mercedes | 100 |
-----------------------------------------------------
| 4 | porsche | 200 |
-----------------------------------------------------
users
--------------------------------
| USER_ID | NAME |
--------------------------------
| 100 | bob |
--------------------------------
| 200 | sally |
--------------------------------
| 300 | mark |
--------------------------------
log_type
--------------------------------
| TYPE_ID | TYPE |
--------------------------------
| 1 | sales |
--------------------------------
| 2 | follow up |
--------------------------------
| 3 | marketing |
--------------------------------
logs (logs for each account)
---------------------------------------------------------------------------
| COMPANY_ID | TYPE | USER | DATE | NOTE |
---------------------------------------------------------------------------
| 1 | 2 | 200 | 2014-06-05 | 123 |
---------------------------------------------------------------------------
| 1 | 2 | 100 | 2014-06-03 | ABC |
---------------------------------------------------------------------------
| 1 | 2 | 100 | 2014-06-01 | 789 |
---------------------------------------------------------------------------
| 1 | 3 | 100 | 2014-06-01 | XYZ |
---------------------------------------------------------------------------
| 2 | 3 | 100 | 2014-01-01 | Hello |
---------------------------------------------------------------------------
| 2 | 2 | 100 | 2014-01-01 | Hello |
---------------------------------------------------------------------------
想要这些结果吗
-在本例中,显示一个用户的帐户表。
-显示附加到帐户的最后一个日志。如果不存在,则仍显示/NULL
-仅拉取“跟进”日志类型的日志。\u type=2
-首先按最旧的附加日志对列表进行排序。日志日期asc
---------------------------------------------------------------------------
| COMPANY | TYPE | USER | DATE | NOTE |
---------------------------------------------------------------------------
| audi | follow up | bob | 2014-01-01 | Hello |
---------------------------------------------------------------------------
| bmw | follow up | bob | 2014-06-03 | ABC |
---------------------------------------------------------------------------
| mercedes | NULL | bob | NULL | NULL |
---------------------------------------------------------------------------
当前代码如下所示
select c.COMPANY, lt.TYPE, u.NAME, l.DATE, l.NOTE from accounts c
LEFT JOIN users u ON c.ACCOUNT_OWNER = u.USER_ID
LEFT JOIN logs l ON ( (c.ID_COMPANY = l.COMPANY) && l.TYPE = '2' && u.USER_ID = 100
LEFT JOIN log_type lt ON l.TYPE = lt.TYPE_ID
WHERE u.USER_ID = 100 && l.TYPE = '2'
GROUP BY c.COMPANY_ID
ORDER BY l.DATE asc
苏..什么不起作用?得到这个结果的唯一方法是一个带有硬编码“bob”或硬编码“mercedes”的联盟。