gpt4 book ai didi

sql - Mysql多对多查询

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

绕过这个查询有心理障碍。

我有以下表格:

review_list:拥有大部分数据,但在这种情况下唯一重要的是review_id,即我当前感兴趣的记录的id(int)variant_list:模型(varchar),启用(bool)
variant_review:模型(varchar),id(int)

variant_review 是一个多对多表,将 review_list 中的 review_id 链接到 variant_list 评论中的模型,并包含(例如):

..  
test1,22
test2,22
test4,22
test1,23
test2,23... etc

variant_list 是所有可能模型的列表以及它们是否启用并包含(例如):

test1,TRUE
test2,TRUE
test3,TRUE
test4,TRUE

我在 mysql 中追求的是一个查询,当给定一个 review_id(即 22)时,它将返回一个结果集,该结果集将列出 variant_review.model 中的每个值,以及它是否存在给定的 review_id,例如:

test1,1
test2,1
test3,0
test4,1

或类似的,我可以将其转移到一些带有类型复选框列表的网页。这将显示所有可用的模型以及每个模型是否都出现在表中

最佳答案

提供有关列名称的更多信息:

Select variant_list.model
, Case When variant_review.model Is Not Null Then 1 Else 0 End As HasReview
From variant_list
Left join variant_review
On variant_review.model = variant_list.model
And variant_review.review_id = 22

只是为了完整起见,如果您可以在 variant_review 表中有多行具有相同的模型和 review_id,那么您需要以不同的方式进行:

Select variant_list.model
, Case
When Exists (
Select 1
From variant_review As VR
Where VR.model = variant_list.model
And VR.review_id = 22
) Then 1
Else 0
End
From variant_list

关于sql - Mysql多对多查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3282447/

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