gpt4 book ai didi

php - mysql基于参数的高级查询选择

转载 作者:行者123 更新时间:2023-11-29 21:08:45 26 4
gpt4 key购买 nike

首先请对我好一点,我是 SQL 语言和英语的初学者。所以我对这个查询有疑问。

我创建了sqlfiddle 。我的查询看起来工作正常,但我发现它不起作用

我想编写一个查询,根据将发送的参数返回产品 ID 变体

正确的查询结果如下所示

PARAM = 6

id product_id productvariant_id attributevalue_id

1 3 1 6
2 3 2 6
---- BAD RESULTS -----
3 3 3 6
4 3 3 9
6 3 5 6
7 3 6 6
8 3 6 11

PARAM = 6,9

id product_id productvariant_id attributevalue_id

3 3 3 6
4 3 3 9
---- BAD RESULTS -----
3 3 3 6
4 3 3 9
6 3 5 6
7 3 6 6
8 3 6 11

我真正需要的是返回包含插入参数组合的productvariant_id,如果我只发送一个attributevalue_id,我需要找到仅包含一个attributevalue_id的productvariant。如果我发送两个参数,我会发现两个参数的组合..不多或更少

最佳答案

不幸的是,我没有足够的声誉来发表评论,因此我必须将其写为答案。你能澄清一下你的目标吗?

您想要检索 attributevalue_id 与您的参数匹配的所有数据集的 Productvariant_id 吗?

SELECT productvariant_id 
FROM productvariantattribute
WHERE attributevalue_id IN ($YOUR_PARAMETER_LIST);

或者您想要检索所有数据集的productvariant_id,其中productvariant_id仅包含您指定为参数的这些attributevalue_ids?

SELECT `productvariant_id`
FROM `productvariantattribute`
WHERE `attributevalue_id` IN ($YOUR_PARAMETER_LIST)
AND `productvariant_id` NOT IN (
SELECT `productvariant_id`
FROM `productvariantattribute`
WHERE `attributevalue_id` NOT IN ($YOUR_PARAMETER_LIST)
)

关于php - mysql基于参数的高级查询选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36592671/

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