【发布时间】:2018-06-08 17:43:46
【问题描述】:
我有两张桌子
工作
id | job_num | comp_date
-----------------------------
1 | J01 | NULL
2 | J02 | NULL
3 | J03 | NULL
4 | J04 | NULL
5 | J05 | NULL
适合
id | job_id | status | apt_date | user_id
-----------------------------------------
1 | 1 | 1 | 2018-08-09 | 1
2 | 1 | 1 | 2018-08-09 | 2
3 | 2 | 2 | 2018-08-09 | 1
我正在尝试从 2 个带有左连接限制的表中获取数据
查询
SELECT j.* , a.* FROM `job` j
LEFT JOIN apt a
ON j.id = a.job_id AND a.status = 1
Group by a.date
结果
id | job_num | comp_date| id | job_id | status | apt_date
---------------------------------------------------------
2 | J02 | NULL |NULL|NULL | NULL | NULL
1 | J01 | NULL | 1 |1 | 1 | 2018-06-05
我需要 Job 表中的所有数据和状态为 1 的 apt 表中的 1 条记录
预期输出
id | job_num | comp_date| id | job_id | status | apt_date
---------------------------------------------------------
1 | J01 | NULL | 1 |1 | 1 | 2018-06-05
2 | J02 | NULL |NULL|NULL | NULL | NULL
3 | J03 | NULL |NULL|NULL | NULL | NULL
4 | J04 | NULL |NULL|NULL | NULL | NULL
5 | J05 | NULL |NULL|NULL | NULL | NULL
如何按记录分组?
【问题讨论】:
-
您可以加入 apt 表上的子查询,但该子查询有限制。
-
好吧,如果不是,我想要带有 group by 的 apt 表数据。如果状态 = 1,则在 apt 状态下,该作业的所有状态 1 的 apt_date 始终相同
-
按什么顺序限制?如果
apt、job_id和status有多个日期怎么办。你想要哪一个?哪个 user_id? -
这就是我想按 apt_dae 分组的原因
-
如果您按日期分组,并且
job_id有多个日期,status为 1,那么您将获得每个job.id的多个记录。那是你要的吗?您能否分享更多显示此场景的示例数据以及您想要的结果?目前还不清楚你想用这个非常有限的样本做什么。