2011-05-26 24 views
5

Tengo la siguiente consulta SQL:cómo devolver número de filas de MySQL sub consulta

SELECT games.id, games.GameTitle FROM games 
WHERE EXISTS (
       SELECT filename FROM banners 
       WHERE banners.keyvalue = games.id 
       AND banners.filename LIKE '%front%' 
      ) 

que no es del todo correcto para mi uso

lo que me gustaría es algo así como:

SELECT games.id, games.GameTitle 
FROM games WHERE EXISTS (
    COUNT(SELECT filename FROM banners 
    WHERE banners.keyvalue = games.id AND banners.filename LIKE '%front%') > 1 
    ) 

es decir, solo seleccione cuando la subconsulta recupera más de 1 fila.

Respuesta

5

simplemente así:

SELECT games.id, games.GameTitle 
FROM games 
WHERE (
    SELECT COUNT(filename) 
    FROM banners 
    WHERE banners.keyvalue = games.id AND banners.filename LIKE '%front%' 
) > 1 
+1

+1 Me adelantó. 'COUNT (*)' también funcionará. – Mike

+0

muchas gracias ... eso funcionó bien ... ¡estaba tan cerca también! – Alex

+0

@Mike ya que la selección estaba en 'filename' en la consulta original, lo guardé. @Alex contenta de poder ayudar: = – krtek

2
SELECT games.id, games.GameTitle 
    FROM games 
    WHERE EXISTS (SELECT COUNT(filename) 
         FROM banners 
         WHERE banners.keyvalue = games.id 
          AND banners.filename LIKE '%front%' 
         HAVING COUNT(filename)>1) 
+0

+1 tal vez más rápido que mi propia respuesta, se debe hacer una pequeña prueba ... – krtek

Cuestiones relacionadas