gpt4 book ai didi

php - mysql查询其他查询的结果集

转载 作者:太空宇宙 更新时间:2023-11-03 11:28:44 25 4
gpt4 key购买 nike

我的 MySQL 数据库中有 2 个自定义表(数据库名称:test)。

我的表格数据如下:

表:sku

entity_id   sku1           24-MB012           24-MB033           24-UB024           24-UB01

Table: cat

id  entity_id   category1   1           32   2           33   1           54   2           75   4           46   3           507   3           208   3           219   4           3

I am using the following query to get the comma separated categories with respect to sku values:

SELECT sku.entity_id, sku.sku, GROUP_CONCAT(cat.category SEPARATOR ",") as category 
FROM sku, cat
WHERE cat.entity_id = sku.entity_id
GROUP by sku.entity_id

下面是使用上述查询找到的结果集:

entity_id   sku         category1           24-MB01     3,52           24-MB03     7,33           24-UB02     21,50,204           24-UB01     4,3

现在,我想使用这个结果集来查找特定类别的记录(假设类别 ID 为 3)。当我在查询中使用 FIND_IN_SET 时,结果的类别列中只有 3 个。我想得到它:

entity_id   sku         category1           24-MB01     3,52           24-MB03     7,34           24-UB01     4,3

我怎样才能达到预期的效果?

最佳答案

添加一个HAVING子句:

SELECT sku.entity_id, 
sku.sku,
GROUP_CONCAT(cat.category SEPARATOR ",") as category
FROM sku, cat
WHERE cat.entity_id = sku.entity_id
GROUP by sku.entity_id
HAVING SUM(cat.category = 3) > 0;

(顺便说一句,这在 MySQL 中使用了 true = 1,false = 0。在其他 DBMS 中,这将是 HAVING SUM(CASE WHEN cat.category = 3 THEN 1 ELSE 0 END) > 0。 )

关于php - mysql查询其他查询的结果集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51817749/

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