2015-04-24 11 views
5

Xin chào trước tiên, tôi không phải là chuyên gia trong truy vấn mysql. tôi có bảng kéo wp_postswp_wti_like_post và tôi đang làm LEFT JOIN trên wp_wti_like_post ON wp_posts.ID = wp_wti_like_post.post_idSUM(wp_wti_like_post.value) < 2 NHƯNG nếu có no row trong wp_wti_like_post với id của bài từ wp_posts sau đó nó không hiển thị ngay cả những hàng từ wp_posts và chỉ cần bỏ qua nó, xin vui lòng giúp đỡ trong việc này thực sự cần nó.Truy vấn Mysql bỏ qua hàng nếu hàng con từ bảng nối trái không tồn tại

truy vấn:

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 

bảng wp_wti_like_post

http://prntscr.com/6xixrd

bảng wp_posts

http://prntscr.com/6xixzp

+0

tất nhiên nó bỏ qua nó . bạn đang chọn ngầm chỉ những hàng có 'wp_wti_like_post' có một giá trị trong mệnh đề' have' và 'group' của bạn. –

+0

@pala_ nó vẫn làm điều tương tự, nó bỏ qua hàng nếu hàng bên trong wp_wti_like_post không tồn tại –

+0

@pala_ vì vậy những gì có thể là giải pháp? đây là những gì tôi đang gặp rắc rối, –

Trả lời

0

Vì vậy, tôi sắp xếp này bằng cách tự của tôi và đi cho nó hoạt động theo cách

này tại nơi

SUM(wp_wti_like_post.value) = NULL 

nó nên cần phải

SUM(wp_wti_like_post.value) IS NULL 
0

Bạn có thể cần phải tái cấu trúc truy vấn của bạn để như sau:

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; 

Truy vấn nhiều nhất trước chỉ tìm nạp wti_like_posts đã được xuất bản.

Tiếp nối bên trái sau đó được thực hiện, sẽ cung cấp cho bạn kết quả dự kiến ​​tìm nạp tất cả các hàng từ wp_posts, ngay cả khi chúng không tham gia với bản ghi từ truy vấn phụ.

Sau khi được thực hiện, câu lệnh GROUP thực hiện tính toán SUMming các giá trị.

Truy vấn ngoài cùng thực thi yêu cầu tổng phải nhỏ hơn 2 hoặc là rỗng.

Các vấn đề liên quan