2017-02-24 1 views
0

ich eine Abfrage leite die Beiträge eingereicht zählt:SQL Zählung aber ausschließen bestimmte Zeilen

SELECT COUNT(*) 
FROM `wp_posts` 
WHERE `post_author` = 4 
    AND `post_type` = 'nf_sub' 
    AND `post_status` = 'publish' 

Damit werden die Beiträge aller zurückgibt. Jetzt möchte ich Beiträge auszuschließen, in denen _form_id_ = 1. Diese Abfrage:

SELECT * 
FROM `wp_postmeta` 
WHERE `post_id` = 225 
    AND `meta_key` = '_form_id' 
    AND `meta_value` = 1 

Wie kann ich die beiden in einer Abfrage kombinieren, die nur Zeilen zählt, in denen _form_id_ nicht gleich 1 ist?

+0

Das gleiche wie die auf dem ersten Aussagen haben, filtern, dass nur für WHERE _form_id '<> 1' – Cataklysim

+1

ich es einem verwandten Bereich zwischen den beiden Tabellen? – McNets

+0

Was ist die Beziehung zwischen den beiden Tabellen? – Krishnakumar

Antwort

0

Aus den Tabellen wird angenommen, dass das Verbindungsfeld der Primärschlüssel wpposts_id in Tabellen wp_posts ist.

Verwenden Sie die folgende innere Abfrage, es gibt andere Möglichkeiten, dies auch zu erreichen.

SELECT COUNT(*) 
FROM `wp_posts` 
WHERE `post_author` = 4 
    AND `post_type` = 'nf_sub' 
    AND `post_status` = 'publish' 
    and `wppost_id` not in (SELECT `wppost_id` 
          from `wp_postmeta` 
          WHERE `post_id` = 225 
           AND `meta_key` = '_form_id' 
           AND `meta_value` = 1 
         ); 
0

Dies ist die Antwort. Danke an alle, die Hinweise gegeben haben.

SELECT COUNT(*) FROM `wp_posts` WHERE `post_author` = ".get_current_user_id()." AND `post_type` = 'nf_sub' AND `post_status` = 'publish' AND `ID` NOT IN (SELECT `post_id` FROM `wp_postmeta` WHERE `meta_key` = '_form_id' AND `meta_value` = 1) 
Verwandte Themen