gpt4 book ai didi

php - Mysql相交结果

转载 作者:行者123 更新时间:2023-11-29 01:19:00 25 4
gpt4 key购买 nike

我正在尝试做一些类似于 PHP array_intersect 的事情。我有下表

CREATE TABLE `recipes_ingredients_items` (
`id` INTEGER(11) DEFAULT NULL,
`itemid` INTEGER(11) DEFAULT NULL,
`orderby` TINYINT(4) NOT NULL,
KEY `id` (`id`),
KEY `itemid` (`itemid`)
)ENGINE=MyISAM
AVG_ROW_LENGTH=47 CHARACTER SET 'utf8' COLLATE 'utf8_general_ci';

我需要一个查询来获取所有包含 id 2,72,64 作为不同 itemid 的结果。问题是一个 id 可能在一个 itemid 中存在不止一次,即 itemid 600 可能有 3 行与 id 2,100,2 相关联。
我的想法是使用 x 号子查询返回结果并执行类似 PHP array_intersect 的查询,从而返回具有所有这些 id 的 itemid。

SELECT DISTINCT itemid  FROM recipes_ingredients_items
WHERE
id IN (SELECT DISTINCT itemid FROM recipes_ingredients_items WHERE id = 71)
AND
id IN (SELECT DISTINCT itemid FROM recipes_ingredients_items WHERE id = 2)
AND
id IN (SELECT DISTINCT itemid FROM recipes_ingredients_items WHERE id = 22)

这就是我得到的结果,它是 100% 错误的。

最佳答案

试试这个:

SELECT item_id
FROM recipes_ingredients_items
WHERE id IN (71, 2, 22)
GROUP BY item_id
HAVING COUNT(*) = 3

关于php - Mysql相交结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3899614/

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