Я получаю неизвестный столбец, где статья
SELECT 'table_1'.*, COUNT(table_2.some_id) AS table2count
FROM 'table_1'
LEFT JOIN 'table_2' ON table_1.id=table_2.some_id
WHERE ('table2count' > 2)
Я также пробовал
SELECT 'table_1'.*, COUNT(table_2.some_id) AS table2count
FROM 'table_1'
LEFT JOIN 'table_2' ON table_1.id=table_2.some_id AND ('table2count' > 2)
Вы не можете использовать псевдонимы в предложении where, если у вас нет производной таблицы. В этом случае то, что вам нужно, это having
пункт.
SELECT 'table_1'.some_column, COUNT(table_2.some_id) AS table2count
FROM 'table_1'
LEFT JOIN 'table_2' ON table_1.id=table_2.some_id
group by 'table_1'.some_column, table_2.some_id having table2count > 2
Всякий раз, когда вы используете group by
, все столбцы в select
должны быть частью group by
исключением тех, которые являются частью агрегатной функции, такой как sum
, count
и т.д.
Вы, вероятно, хотите:
SELECT 'table_1'.*
FROM 'table_1'
WHERE EXISTS (SELECT COUNT(table_2.some_id)
FROM table_2
WHERE table_1.id=table_2.some_id
HAVING COUNT(table_2.some_id) > 2);