gpt4 book ai didi

mysql - 检查连接表中是否存在匹配的记录

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

我有两个表:categoriesprodvscats

categories              prodvscats

id | id
title | categories_id

每个表都有一些行,例如:

categories              prodvscats

categ1 | categ1
categ2 | categ2
categ3
categ4

我想返回所有类别,但我想知道 prodvscats 表中存在哪些类别。

期望的结果:

  title                boolean variable exists
categ1 | 1
categ2 | 1
categ3 | 0
categ4 | 0

我尝试使用 join 但它仅返回前两行。也许它需要类似案例的东西,但我不知道该怎么做。

SELECT categories.id, categories.title
FROM categories
INNER JOIN prodvscats ON prodvscats.categories_id = categories.id
ORDER BY id

最佳答案

使用LEFT JOIN连接两个表。这将返回所有行,包括其他表中不存在类别的行。然后使用 GROUP BY 合并类别,并使用 COUNT 确定是否存在匹配项:

SELECT
categories.id,
categories.title,
CASE WHEN COUNT(prodvscats.id) = 0 THEN 0 ELSE 1 END AS product_exists
FROM categories
LEFT JOIN prodvscats ON categories.id = prodvscats.categories_id
GROUP BY categories.id, categories.title

关于mysql - 检查连接表中是否存在匹配的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33145498/

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