gpt4 book ai didi

mysql - 连接两个没有重复且带有标记的表

转载 作者:行者123 更新时间:2023-11-29 02:32:03 25 4
gpt4 key购买 nike

我得到的是这两张表: tables

一个前缀可以被无限数量的链接使用。如果 id 来自 click_links 表作为参数,我会收到一个列表。

现在我的目标是选择一个前缀列表并标记该列表中链接使用的前缀。

我尝试过的:我最好的尝试是这样的:

select p.id, p.contents, c.id,
case
when (c.id in (544,545...))
then 1
else 0
end as isused
from prefixes p
join click_links c on c.prefix_id = p.id

但这不太好,因为如果它被许多链接使用,就会有重复的 prefix

我怎样才能得到一个没有重复的前缀列表,并带有一个标记(如果你愿意,可以标记)显示它是否被列表中的至少一个链接使用?

编辑以这个查询结束:

SELECT distinct(p.id), p.contents,
IF(c.id IS NOT NULL, 1, 0) AS isused
FROM prefixes p
LEFT JOIN (SELECT DISTINCT (prefix_id), id
FROM click_links WHERE id IN(544, 545...)
)c
ON c.prefix_id = p.id;

最佳答案

我想这就是你要找的,试试吧:

SELECT p.id, p.contents, c.id,
IF(c.id IS NOT NULL, 1, 0) AS isused
FROM prefixes p
LEFT JOIN (SELECT DISTINCT id
FROM click_links WHERE id IN(544,545...)
)c
ON c.prefix_id = p.id;

关于mysql - 连接两个没有重复且带有标记的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11666236/

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