gpt4 book ai didi

mysql - 输出名称字段与没有名称字段的输出不同 MYSQL

转载 作者:行者123 更新时间:2023-11-29 22:05:15 24 4
gpt4 key购买 nike

SELECT users.id as uid,   projects.id as pid
FROM users
inner join usergroup on usergroup.id = users.user_group
inner join bookings on bookings.agent_id = users.id
inner join units on bookings.unit = units.id
inner join types on types.id = units.types_id
inner join projects on projects.id = types.project_id
WHERE bookings.status = 'Accepted' AND units.status = 'Sold'
GROUP BY pid

通过上面的查询,我得到了正确的逻辑输出:

pid   |   uid
1 1
2 1
9 12
10 14

然后我想显示用户的名字,所以我在查询中添加了1个字段,如下所示:

SELECT users.id as uid,  users.f_name, projects.id as pid
FROM users
inner join usergroup on usergroup.id = users.user_group
inner join bookings on bookings.agent_id = users.id
inner join units on bookings.unit = units.id
inner join types on types.id = units.types_id
inner join projects on projects.id = types.project_id
WHERE bookings.status = 'Accepted' AND units.status = 'Sold'
GROUP BY pid

但我得到了不同的 uid 输出:

pid    |    uid
1 1
2 1
9 9
10 11

这不符合逻辑,有人知道为什么吗?假设两者都是正确的,但为什么会输出不同的结果?

最佳答案

您的第二个查询是在 where 条件之前使用连接条件过滤数据,而在第一个查询中您是在 where 子句中过滤数据...使第二个查询与第一个查询相同以获得相同的结果...

尝试下面的查询-

SELECT projects.id as pid, users.id as uid, users.f_name
FROM users
inner join usergroup on usergroup.id = users.user_group
inner join bookings on bookings.agent_id = users.id
inner join units on bookings.unit = units.id
inner join types on types.id = units.types_id
inner join projects on projects.id = types.project_id
WHERE bookings.status = 'Accepted' AND units.status = 'Sold'
GROUP BY pid

关于mysql - 输出名称字段与没有名称字段的输出不同 MYSQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32201742/

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