gpt4 book ai didi

mysql - 需要特定的 Mysql Select 查询帮助

转载 作者:行者123 更新时间:2023-11-29 05:53:47 26 4
gpt4 key购买 nike

我有两个表 resource (id, name, ...)user_favorites(user_id, resource_id) 有外键 resource_id来自资源表。

我有一种情况需要检查资源表是否有任何记录到 user_favorites 表中特定 user_id 的 user_favorites 表,并相应地放置一个标志 true 或 false。

这是我能想到的最后一个查询

SELECT distinct resources.*,
(CASE WHEN user_favorites.user_id='1' then 'TRUE' ELSE 'FALSE' END) as favorite,
user_favorites.user_id
FROM resources LEFT JOIN
user_favorites
ON resources.id = user_favorites.resource_id

不过,我想要的是能够保留的资源。对于当前查询,当还有其他用户id的记录时,它记录false。

解决这个问题的最佳方法是什么?

最佳答案

您可以在select 中使用表达式逻辑。在 MySQL 中,你甚至不需要 case:

SELECT r.*, 1 as user_id,
(EXISTS (SELECT 1
FROM user_favorites uf
WHERE r.id = ur.resource_id AND
ur.user_id = 1
)
) as flag
FROM resources r ;

关于mysql - 需要特定的 Mysql Select 查询帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51631567/

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