Mysql 如果来自左连接 table 的子行不存在,则查询忽略该行
Mysql query ignoring the row if child row from left join table doesn't exists
您好,首先,我不是 mysql 查询方面的专家。我有 tables wp_posts
和 wp_wti_like_post
并且我在 wp_wti_like_post ON wp_posts.ID = wp_wti_like_post.post_id
和 SUM(wp_wti_like_post.value) < 2
上做 LEFT JOIN
但是如果有 no row
in wp_wti_like_post
with post from wp_posts
然后它甚至不显示来自 wp_posts
的行并且只是忽略它,请帮助这个真的需要它。
查询:
SELECT *
FROM wp_posts
LEFT JOIN wp_wti_like_post ON wp_posts.ID = wp_wti_like_post.post_id
WHERE wp_posts.post_status = 'publish'
GROUP BY wp_wti_like_post.post_id
HAVING SUM( wp_wti_like_post.value ) <2
OR SUM( wp_wti_like_post.value ) = NULL
LIMIT 0 , 200
table wp_wti_like_post
table wp_posts
您可能需要将查询重组为如下形式:
SELECT * FROM
(
SELECT WP.*, SUM(LP.value) AS `value`
FROM wp_posts WP
LEFT JOIN
(SELECT post_id FROM wp_wti_like_post WHERE post_status = 'publish') LP
ON WP.ID = LP.post_id
GROUP BY WP.ID
) T1
WHERE T1.value IS NULL
OR T1.value < 2;
最内层的查询首先只获取已发布的 wti_like_posts 个。
然后执行左连接,这将为您提供从 wp_posts 中获取所有行的预期结果,即使它们没有与子查询中的记录连接。
执行后,GROUP 语句执行对值求和的计算。
最外层查询强制要求总和必须小于 2 或为空。
所以我自己解决了这个问题并以这种方式工作
在
的地方
SUM( wp_wti_like_post.value ) = NULL
应该是
SUM( wp_wti_like_post.value ) IS NULL
您好,首先,我不是 mysql 查询方面的专家。我有 tables wp_posts
和 wp_wti_like_post
并且我在 wp_wti_like_post ON wp_posts.ID = wp_wti_like_post.post_id
和 SUM(wp_wti_like_post.value) < 2
上做 LEFT JOIN
但是如果有 no row
in wp_wti_like_post
with post from wp_posts
然后它甚至不显示来自 wp_posts
的行并且只是忽略它,请帮助这个真的需要它。
查询:
SELECT *
FROM wp_posts
LEFT JOIN wp_wti_like_post ON wp_posts.ID = wp_wti_like_post.post_id
WHERE wp_posts.post_status = 'publish'
GROUP BY wp_wti_like_post.post_id
HAVING SUM( wp_wti_like_post.value ) <2
OR SUM( wp_wti_like_post.value ) = NULL
LIMIT 0 , 200
table wp_wti_like_post
table wp_posts
您可能需要将查询重组为如下形式:
SELECT * FROM
(
SELECT WP.*, SUM(LP.value) AS `value`
FROM wp_posts WP
LEFT JOIN
(SELECT post_id FROM wp_wti_like_post WHERE post_status = 'publish') LP
ON WP.ID = LP.post_id
GROUP BY WP.ID
) T1
WHERE T1.value IS NULL
OR T1.value < 2;
最内层的查询首先只获取已发布的 wti_like_posts 个。
然后执行左连接,这将为您提供从 wp_posts 中获取所有行的预期结果,即使它们没有与子查询中的记录连接。
执行后,GROUP 语句执行对值求和的计算。
最外层查询强制要求总和必须小于 2 或为空。
所以我自己解决了这个问题并以这种方式工作
在
的地方SUM( wp_wti_like_post.value ) = NULL
应该是
SUM( wp_wti_like_post.value ) IS NULL