2017-02-08 6 views
0

Ich habe 3 Tabellen, "Negocio", "paquete", "Beiträge".Abfrage, wo Spalte Wert gleich zählt MySQL

"negocio" hat einen "paquete" und "negocio" kann einen oder mehrere "posts" haben.

Ich möchte alle Negocios, die die gleiche Anzahl von "Posts" haben (die als Wert auf ihrer Spalte "posts.tipo_post" den Wert "Post" haben) Datensätze als den Wert auf es ist "paquete.no_posts"

Ich habe so etwas gemacht, aber es gibt mir einen leeren Satz zurück.

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

Haben Sie einen Aliasnamen geben versucht, Ihre innere Abfrage von selbst läuft? Ich kann es jetzt nicht testen, aber Sie vermissen möglicherweise nur eine GROUP BY –

+0

Ich habe es gerade getestet, und es zählt alle Datensätze unabhängig von seinem Wert "posts.id_negocio". –

+0

Das liegt daran, dass inQuery als unabhängige Abfrage ausgeführt wird. Versuchen Sie es mit Alias. – Prasanth

Antwort

0

Versuchen Sie count (*) Tabelle

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' 
Verwandte Themen