gpt4 book ai didi

MySQL 查询从多个表返回 OR-inclusive 关系

转载 作者:行者123 更新时间:2023-11-29 04:01:07 28 4
gpt4 key购买 nike

我有两个实体,“用户”和“产品”,以及两个表:一个用于存储哪些用户查看哪些产品,另一个用于存储哪些用户喜欢哪些产品。我想查询一次并返回如下所示的结果:

表“ View ”:

Table Views

表“喜欢”:

Table Likes

查询结果:

enter image description here

理想情况下,结果中不应出现重复的user_id、product_id。请注意,如果用户既不查看也不喜欢某个产品,则不应返回该产品(即不应有 FALSE,FALSE 行)。

由于 MySQL 不支持 FULL JOIN,我怀疑应该有一个使用 UNION ALL 的解决方法。我很感激任何想法。

最佳答案

你可以试试这个:

SELECT user_id, product_id, max(`view`) `view`, max(`like`) `like` FROM (
SELECT user_id, product_id, TRUE `view`, FALSE `like` FROM views
UNION ALL
SELECT user_id, product_id, FALSE, TRUE FROM likes
) s
GROUP BY user_id, product_id

顺便说一句,您应该尽量避免将 viewlike 作为名称,因为它们是 MySQL 中的保留字。

请记住,在 MySQL 中,true1 以及 false0 是同义词。

fiddle here .

关于MySQL 查询从多个表返回 OR-inclusive 关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19385295/

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