2017-02-08 2 views
0

私は3つのテーブル "negocio"、 "paquete"、 "posts"を持っています。クエリは、列の値がcountと等しいです。

"negocio"は1つの "paquete"を持ち、 "negocio"は1つ以上の "posts"を持つことができます。

"paquete.no_posts"の値として、同じ量の "投稿"(値が "posts.tipo_post"という値を "Post"という値に持つ)レコードを値として持つすべてのnegociosを持っていきたいと思います。

私はこのようなことをしていましたが、空のセットを返します。

SELECT DISTINCT negocio.id, negocio.nombre FROM negocio 
INNER JOIN posts ON negocio.id = posts.id_negocio 
INNER JOIN paquete ON paquete.id_negocio = negocio.id 
WHERE paquete.no_posts = (SELECT COUNT(*) FROM negocio INNER JOIN posts 
ON posts.id_negocio = negocio.id WHERE posts.tipo_post = 'Post' 
AND posts.estado_post = 'Disenador') 
+0

を与えてみては?私は今、それをテストすることはできませんが、GROUP BY –

+0

が不足している可能性があります。私はちょうどそれをテストし、その "posts.id_negocio"の値に関係なくすべてのレコードを数えます。 –

+0

これは、inQueryが独立したクエリとして実行されているためです。別名を使用してみてください。 – Prasanth

答えて

0

ご自身であなたの内側のクエリを実行しようとしたことがあり、あなたのCOUNT(*)テーブルにエイリアス

SELECT COUNT(*) FROM negocio N INNER JOIN posts P 
ON P.id_negocio = N.id WHERE P.tipo_post = 'Post' 
AND P.estado_post = 'Disenador' 
関連する問題