2017-02-24 11 views
0

私が提出した記事をカウントし、クエリを実行しています:SQL数が、特定の行を除外

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

これは、すべての記事を返します。

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

がどのように私は2つだけ_form_id_が1に等しくない行をカウント1つのクエリにを組み合わせることができます。今、私は_form_id_ = 1。このクエリはポストを除外したいですか?

+0

あなたが最初の文にやったのと同じ、ただ< '「_form_id」のフィルタリング> 1 ' – Cataklysim

+1

Iが両方のテーブル間の関連分野? – McNets

+0

2つのテーブルの関係は何ですか? – Krishnakumar

答えて

0

リンクフィールドがwp_postsテーブルのプライマリキーwpposts_idであると仮定すると、

以下の内部クエリを使用すると、これを達成する他の方法もあります。

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

これは答えです。手がかりをくれたすべての人に感謝します。

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) 
関連する問題