2013-11-17 2 views
1

мне нужно подсчитать количество записей в таблице слева, я читал другие вопросы и в конечном итоге с этим запросом, но условие COUNT игнорируетсяMysql выберите кол на левое соединение с условием не работает

SELECT a.name, COUNT(f.status <> 'e') AS total    
FROM album AS a LEFT JOIN photo AS f 
     ON a.id = f.idalbum 
WHERE a.iduser = 4 
GROUP BY a.id 

является MySQL 5 DB

ответ

3

вы не можете определить состояние внутри COUNT даного.

попробовать этот

SELECT a.name, COUNT(f.status ) AS total    
    FROM album AS a LEFT JOIN photo AS f 
    ON a.id = f.idalbum 
    WHERE a.iduser = 4 or f.status <> 'e' 
    GROUP BY a.id 
+0

добавив условие в том, где скрыть записи, которые должны возвращать 0 (без записей на левой таблице) – al404IT

+0

, то вам нужно изменить и на OR Постулаты, если вы хотите, чтобы все записи –

+0

попробовать этот обновленный ответ , –

1

Что делать, если вы:

SELECT a.name, COUNT(f.status) AS total    
FROM album AS a LEFT JOIN photo AS f 
    ON a.id = f.idalbum 
WHERE a.iduser = 4 and f.status != 'e' 
GROUP BY a.id 
Смежные вопросы