gpt4 book ai didi

mysql - 如何从多个表进行自定义查询

转载 作者:行者123 更新时间:2023-11-30 23:11:30 27 4
gpt4 key购买 nike

我们有 3 个不同的表IE。用户、daily_status、status_types

表中的字段

用户:

id,
name,
department_id

用户表的数据:

u1 jai 1
u2 singh 1
u3 test 2

每日状态:

id,
user_id,
status_id,
date

daily_status 表的数据:

1 u1 2 '23/10/2013'
2 u1 3 '24/10/2013'
3 u2 3 '23/10/2013'
4 u3 2 '23/10/2013'
5 u3 2 '23/10/2013'

状态类型:

id,
status_name,

status_types 表的数据

1 present
2 leave
3 sick

我需要这样查询

SELECT user.id, user.name status.name 
LEFT JOIN daily_status as ds ON (user.id=ds.user_id)
LEFT JOIN status_types as status ON (ds.status_id=status.id)
WHERE user.department_id=1 AND ds.date='24/10/2013'

当前结果:

u1 jai sick

但是我想要

u1 jai sick
u2 singh -

根据查询,结果很好,但我需要重新配置它,以便它为我提供该部门所有用户的详细信息,这些用户在 daily_status 表中没有该日期的状态。

最佳答案

将日期验证移至 ON:

SELECT u.id, u.name, status.status_name 
FROM user u
LEFT JOIN daily_status as ds ON u.id=ds.user_id AND ds.date='24/10/2013'
LEFT JOIN status_types as status ON ds.status_id=status.id
WHERE u.department_id=1

sqlfiddle demo

关于mysql - 如何从多个表进行自定义查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19560980/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com