gpt4 book ai didi

mysql在同一字段中通过AND子句链接多个IN子句

转载 作者:行者123 更新时间:2023-11-29 13:47:48 27 4
gpt4 key购买 nike

我需要整理一个查询,而不是为我提供具有不同装饰的所有版本。每个修剪类型可以由多个修剪_id 定义。

我在下面的尝试是说:给我所有具有任何类型的电动车窗和手动空调以及任何类型的安全气囊等的版本。

AND 子句的数量根据用户输入而变化。

当然这个查询是行不通的。实际上它有效,但给了我一个空的结果集。

感谢您的帮助。

SELECT *
FROM vprice_range
INNER JOIN versiontrim USING ( version_id )
WHERE versiontrim.trim_id IN ( 139, 152, 237, 265, 266 ) == types of power window
AND versiontrim.trim_id IN ( 39 ) == manual air conditioner
.....
AND versiontrim.trim_id IN (45, 55, 154) == types of air bags
GROUP BY version_id

最佳答案

您是对的,您需要两个查询之一...您的偏好选择。一个版本是使用多个别名,另一个版本是基于计数。就我个人而言,我更喜欢多重连接:

    SELECT 
PR.*
FROM
vprice_range PR
JOIN versiontrim Windows
on PR.Version_ID = Windows.Version_ID
AND Windows.Trim_ID IN ( 139, 152, 237, 265, 266 )

JOIN versiontrim HasAir
on PR.Version_ID = HasAir.Version_ID
AND HasAir.Trim_ID IN ( 39 )

JOIN versiontrim AirBags
on PR.Version_ID = AirBags.Version_ID
AND AirBags.Trim_ID IN ( 45, 55, 154 )
group by
PR.Version_ID

您的分组依据是版本,但基于 SQL 引擎(MySQL、SQL-Server、Oracle 等),您可能会遇到其他列的问题...您可能只需要 DISTINCT PR.Version_ID 即可解决。

关于mysql在同一字段中通过AND子句链接多个IN子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17158031/

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