gpt4 book ai didi

mysql - 从mysql中的两个不同表中获取数据

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

我有两个表,第一个表是“registration”表,第二个表是“messages”表,registration 表有一列是“reg_id(primary key)”,和“membership(either 'participant' or 'graphics)'”,而 messages 表有一列用于“message_id(主键)”、“reg_id(来自第一个表的外键)”、“receiver_reg_id”、“已完成(此值是 0、1 或2)".

我该怎么做才能得到所有用户的列表,其中 membership='graphics' 和 reg_id(来自注册表)=receiver_reg_id 和 count(completed=0 或 completed =1“注意:这确实不包括 2")<5.

这是我试过的方法,但它不起作用(我的查询):

SELECT r.reg_id 
from registration r
join messages m
on (r.reg_id=m.receiver_reg_id)
WHERE r.membership='graphics' and sum(m.completed=1 or m.completed=0)<5

(但它不起作用。)

示例数据:

注册表:

reg_id: 1, name: Mr A, membership: graphics.
reg_id: 2, name: Mr B, membership: participant.
reg_id: 3, name: Mr C, membership: graphics.

消息表:

message_id: 1, reg_id: 2, receiver_reg_id: 1, completed: 0.
message_id: 2, reg_id: 2, receiver_reg_id: 3, completed: 2.
message_id: 3, reg_id: 1, receiver_reg_id: 2, completed: 1.
message_id: 4, reg_id: 2, receiver_reg_id: 3, completed: 0.
message_id: 5, reg_id: 1, receiver_reg_id: 3, completed: 1.
message_id: 6, reg_id: 2, receiver_reg_id: 3, completed: 0.
message_id: 7, reg_id: 1, receiver_reg_id: 3, completed: 1.
message_id: 8, reg_id: 2, receiver_reg_id: 3, completed: 0.
message_id: 9, reg_id: 1, receiver_reg_id: 3, completed: 1.

预期输出:

reg_id :1.

只有 reg_id :1 符合所有标准。

messages表是一个对话,messages表上的reg_id是发送者的reg_id,receiver_reg_id是接收者的reg_id。

它表明接收者具有图形成员资格,并且所有“已完成”的总和/计数为 1 或 0“但不是两个”(对于该特定接收者)小于 5。

reg_id:2 失败,因为它的成员资格不是图形reg_id:3 失败,因为所有已完成的 1 或 0 的总和/计数最多为 5。

我希望问题更清楚。

最佳答案

你不想要 SUM你想要 count值为 1 的行数或 0对于 completed柱子。应该这样做:

SELECT r.reg_id, count(completed) as da_count
from registration r
join messages m
on r.reg_id=m.receiver_reg_id
WHERE r.membership='graphics' and m.completed in (0, 1)
group by m.receiver_reg_id
having da_count < 5

http://sqlfiddle.com/#!9/c515f0d/6

SUM添加列的实际值,以便您的 0 s 算不了什么。

关于mysql - 从mysql中的两个不同表中获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51352457/

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