Когда у вас есть таблица, которая имеет отношения с двумя другими через FK, можно ли запросить основную таблицу, только считая, сколько раз ее идентификатор существует в других 2?MySQL присоединяется при подсчете объединенных таблиц
Например:
id title product_id contact_id
------ ------- ---------- ----------
11 Mug 110 33
11 Mug 110 297
11 Mug 378 33
11 Mug 378 297
12 Monster 299 75
12 Monster 299 291
12 Monster 299 296
Мой запрос, который приводит к выше:
SELECT t1.id, t1.title, t2.product_id, t3.contact_id FROM t1
JOIN t2 ON t1.id = t2.rfq_id
JOIN t3 ON t1.id = t3.rfq_id
Я заинтересован только в COUNT()
:
id title product_count contact_count
------ ------- ------------- -------------
11 Mug 2 2
12 Monster 1 3
@enchance: поскольку все столбцы, перечисленные в 'select', должны быть либо агрегированы (например, с' count'), либо присутствовать в предложении 'group by', чтобы явно указать, что вы хотите получить. MySQL слишком либеральна, поэтому вы не получите никаких ошибок, но это может привести к тому, чего вы не ожидали. – potashin
Любопытно, если у меня есть больше полей типа 't1.created_at' и т. Д., Я также должен добавить его в список' GROUP BY' или '' '' '' '' '' '' 'достаточно? – enchance
@enchance: Ну, это зависит от вывода, может быть, вы должны присоединиться к таблице к себе и получить 't1.created_at' в соответствии с ее уникальным' t1.id'. – potashin