Задать вопрос
@SomeEl17

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

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

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

SELECT a, ( SELECT COUNT(1) FROM (SELECT B.b FROM B WHERE B.b = a LIMIT 12) ) AS somename FROM A WHERE cond;
  • Вопрос задан
  • 168 просмотров
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Java-разработчик
    8 месяцев
    Далее
  • Shultais Education
    Основы SQL
    3 месяца
    Далее
  • OTUS
    PHP Developer. Professional
    5 месяцев
    Далее
Решения вопроса 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
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы