Я хочу передать Id
из этого ВЫБОР (Мастер):
SELECT x.id, ............ FROM xx INNER JOIN xx ON xx = xx ........
(например: 100 строк)
до (ребенок)
SELECT a,b from xxxxx..... where id in (x.id)
(например, также 100 строк)
наконец объединяет оба выхода вместе
Что у меня на уме:
select z.id,...........,z.a,z.b
(
SELECT x.id, ............ FROM xx INNER JOIN xx ON xx = xx ........ (eg: 100 rows)
SELECT a,b from xxxxx..... where id in (x.id) (eg: also 100 rows)
) z
Моя проблема в том, как передать идентификатор в другой выбор.
Нашел решение, но строки потомка не совпадают с мастером, так как ключ (id) в мастере не существует в дочерней таблице:
SELECT z.id, sum(a), sum(b), z.xx, z.xx from xxxxx.....,(SELECT x.id, ............ FROM xx INNER JOIN xx ON xx = xx ........) as z where id in (z.id) group by z.id
Как вывести результат, например, когда он обнаружит, что идентификатор не существует у дочернего элемента, сумма (a) и сумма (b) будут отображаться как (-).
PS: каждый запрос на выборку объединяет несколько таблиц.
Пример таблицы (200 строк):
Id, м, m1, m2, m3, m4, m5 * * 1 028
1, ...
2, ...
3, ...
4, ...
5, ...
6 ...
Ребенок:
Id, c1, c2, c3, c4, c5
1, ...
1, ...
1, ...
5, ...
5, ...
6 ...
Ожидаемый результат:
(передать весь идентификатор в master ребенку)
Результат (также должно быть 200 строк):
* * Id тысяча шестьдесят три, m1, m2, m3, СУММА (с1), СУММА (с2)
1, ...
2, m1, m2, m3, -, -
3, m1, m2, m3, -, -
* * 4 тысячи семьдесят-одна, m1, m2, m3, -, - * * тысяча семьдесят-две
5, ...
6 ...
Решено (неисправность мозга, мой плохой):
SELECT x.id, ............,AwaitingA, AwaitingB FROM xx INNER JOIN xx ON xx = xx ........
LEFT JOIN (
SELECT id, sum(a) as AwaitingA, sum(b) as AwaitingB from xxxxx..... group by ....) d
on x.id = d.id