MySQL подзапрос с более чем одним столбцом

Я пытаюсь сделать это

SELECT
`projects`.*,
(SELECT
COUNT(`leads`.`id`),
`pixel`.`uuid`,
`pixel`.`project_id`
FROM `leads`
LEFT JOIN `pixel` ON `leads`.`pixel` = `pixel`.`uuid`
WHERE `projects`.`id` = `pixel`.`project_id`
) as leads

FROM `projects`

Но я не могу, так как у моего выбора подзапроса есть больше чем один столбец, но у меня должен быть его, чтобы я мог сделать соединение, в любом случае вокруг этого? (все, что мне нужно, это счет)
благодарю вас.

0

Решение

Измени свой correlated Subquery в Inner Join показать все столбцы из вашего subquery

SELECT projects.*,
a.*
FROM   projects P
INNER JOIN (SELECT Count(leads.id) Cnt_id,
pixel.uuid,
pixel.project_id
FROM   leads
LEFT JOIN pixel
ON leads.pixel = pixel.uuid) A
ON projects.id = A.project_id
0

Другие решения

Я рекомендую вам попытаться избежать подзапроса:

SELECT
projects.*,
IFNUL(COUNT(leads.id).0) AS Cnt_id
FROM
projects,
LEFT JOIN pixel ON projects.id = pixel.project_id
LEFT JOIN leads ON leads.pixel = pixel.uuid
GROUP BY
projects.id

Я подозреваю, что это будет намного быстрее.

0

Это ответ

SELECT
`projects`.*,
(SELECT
COUNT(`pixel`.`project_id`)
FROM `pixel`
WHERE `projects`.`id` = `pixel`.`project_id`) AS `num_pixels`,
(SELECT COUNT(`leads`.`id`) FROM `leads`
LEFT JOIN `pixel` ON `leads`.`pixel` = `pixel`.`uuid`
WHERE `projects`.`id` = `pixel`.`project_id`) AS `num_leads`
FROM `projects`
0
По вопросам рекламы [email protected]