gpt4 book ai didi

mysql - SQL 多个 WHERE IN

转载 作者:搜寻专家 更新时间:2023-10-30 21:40:31 24 4
gpt4 key购买 nike

我正在尝试从 wp_posts 表中选择 ID,我需要在其中执行 3 个条件。

  1. ID 是否与 wp_postmeta 表中的 post_id 匹配,其中 meta_key = ' gtp_analytics_client_id' 并且 meta_value 不为空。

  2. ID 是否与 wp_postmeta 表中的 post_id 匹配,其中 meta_key = ' gtp_conversion_uploaded' 并且 meta_value 不等于 1。

  3. ID 是否与 wp_postmeta 表中的 post_id 匹配,其中 meta_key = 'gtp_lead_revenue' 和元值 不为空。

我是 SQL 初学者。这就是我现在拥有的,但我不能使用多个 IN。所以我想我需要换一种方式。

SELECT ID 
FROM wp_posts
WHERE ID IN (SELECT post_id
FROM wp_postmeta
WHERE meta_key = 'gtp_analytics_client_id' AND meta_value != '')
AND IN (SELECT post_id
FROM wp_postmeta
WHERE meta_key = 'gtp_conversion_uploaded' AND meta_value != 1)
AND IN (SELECT post_id
FROM wp_postmeta
WHERE meta_key = 'gtp_revenue' AND meta_value != '')

我收到以下错误:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IN (SELECT post_id FROM wp_postmeta WHERE meta_key = 'gtp_conversion_uploaded' A' at line 4

最佳答案

and 不是 in 运算符的一部分,它是三个独立的 in 运算符,因此您需要第一个操作数(ID) 所有的:

SELECT ID 
FROM wp_posts
WHERE ID IN ( ... )
AND ID IN ( ... )
AND ID IN ( ... )

你也可以把它写成三个连接:

SELECT
p.ID
FROM
wp_posts p
INNER JOIN wp_postmeta m1 ON m1.post_id = p.ID AND m1.meta_key = 'gtp_analytics_client_id' AND m1.meta_value != ''
INNER JOIN wp_postmeta m2 ON m2.post_id = p.ID AND m2.meta_key = 'gtp_conversion_uploaded' AND m2.meta_value != 1
INNER JOIN wp_postmeta m3 ON m3.post_id = p.ID AND m3.meta_key = 'gtp_revenue' AND m3.meta_value != ''

关于mysql - SQL 多个 WHERE IN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27402750/

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