gpt4 book ai didi

mysql - 查询连接表

转载 作者:行者123 更新时间:2023-11-29 07:09:40 25 4
gpt4 key购买 nike

我有以下三个表:

奖牌类型

id          name           description
6 Medalname Right on!
7 Medalname2 Aswsome
8 Medalname3 Allright

奖牌

id          medaltype      userref   
1 6 MYUSERNAME
2 7 MYUSERNAME
3 6 OTHERUSER
4 6 OTHERUSERALSO

用户个人资料

userid       userref 
1 MYUSERNAME
2 OTHERUSER
3 OTHERUSERALSO

我想要的是特定用户 ID 的所有奖牌类型的结果,包括已获得的奖牌和仍需获得的奖牌。就像 userid 1 一样,结果如下:

Medalname        - Earned
Medalname2 - Earned
Medalname3 - To be earned

我可以获得带有左连接的奖章类型和奖章的列表,但一旦我加入(更不用说查询特定用户 ID)用户个人资料,它就会减少列表。

这个查询应该是什么样子?

最佳答案

您想要使用LEFT JOIN,但用户的条件需要放在ON子句中:

select ml.name,
(case when m.id is not null then 'EARNED' else 'TO BE EARNED'
end)
from medaltypes ml left join
medals m
on m.medaltype = ml.id and
m.userref = 'MYUSERNAME';

你的数据结构很糟糕。 Medals 不应包含 userref;它应该包含用户的 ID。

关于mysql - 查询连接表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40321190/

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