@SomeEl17

Как составить вложенные запросы, чтобы во внутреннем использовались данные с выборки внешнего?

Сабж странный, извините.

Надеюсь, что этот пример запроса не такой страшный и понятен.

SELECT a, ( SELECT COUNT(1) FROM (SELECT B.b FROM B WHERE B.b = a LIMIT 12) ) AS somename FROM A WHERE cond;
  • Вопрос задан
  • 167 просмотров
Решения вопроса 1
@dmitryKovalskiy
программист средней руки
3 уровня вложенности на мой взгляд - расстрельная статья. Лучше разбирайтесь с JOIN. С радостью бы помог, но в этом сферическом коне в вакууме разобраться желания нету.
UPD: Так нельзя?
SELECT a,Count(a) FROM A
INNER JOIN B ON B.b = A.a
WHERE ... 
GROUP BY a
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Wol_fi
php, js, mysql, highload
SELECT A.a, ( SELECT COUNT(1) FROM (SELECT B.b FROM B WHERE B.b = A.a LIMIT 12) ) AS somename FROM A WHERE cond;

примерно так наверно(не уверен), но мне кажется, что быстрей отработает если проджоинить:
SELECT A.a, if (X.cnt >= 12, 12 , X.cnt) as somename 
FROM A 
INNER JOIN (SELECT B.b, count(*) as cnt FROM B GROUP BY B.b) as X
 ON A.a = X.b 
WHERE cond
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
23 нояб. 2024, в 01:31
1000 руб./за проект
23 нояб. 2024, в 00:16
2000 руб./за проект
22 нояб. 2024, в 23:55
3000 руб./за проект