Я пытаюсь сделать запрос, который возвращает результат двух разных запросов.SQL Query в зависимости от другого запроса
У меня есть этот один:
SELECT idtravel, travel, status FROM travel_db.travel
inner join travel_db.status
on travel.status_idstatus=status.idstatus
order by idtravel desc
вернуться:
idtravel | travel | status
1 London Completed
2 NY Planned
3 Lisbon Completed
имеют Также этот запрос:
select sum(value) as total
from
(select a.value
from desp_housing a
where travel_idtravel = 1
union all
select t.value
from desp_transport t
where travel_idtravel = 1
union all
select tu.value
from desp_turism tu
where travel_idtravel = 1
) z
, который возвращает:
Value
600
Моя цель объединить эти два querys иметь что-то вроде этого:
idtravel | travel | status | Value
1 London Completed 600
2 NY Planned 1500
3 Lisbon Completed 150
Может кто-нибудь помочь?
* Редактировать 13-05-15: После некоторых идей, я нахожусь в одном поле от моего конечного результата. Вот где я нахожусь:
select idtravel, travel, sum(value) as total
from travel_db.travel
inner join
(select a.travel_idtravel, a.value
from desp_housing a
union all
select t.travel_idtravel, t.value
from desp_transport t
union all
select tu.travel_idtravel, tu.value
from desp_turism tu
union all
SELECT idtravel, travel
FROM travel_db.travel
) z
on travel.idtravel=z.travel_idtravel
group by travel_idtravel
вернуться:
idtravel | travel | value
1 London 600
2 NY 1500
3 Lisbon 150
Это только отсутствует поле статус
* Редактировать 14-05-15: Ребята, это, наконец завершено.
Вот окончательный запрос:
Select idtravel, travel, sum(value) as total, status
From travel_db.travel
inner join
(select a.travel_idtravel, a.value, a.status_idstatus
from desp_housingo a
union all
select t.travel_idtravel, t.value, t.status_idstatus
from desp_transport t
union all
select tu.travel_idtravel, tu.value, t.status_idstatus
from desp_turism tu
union all
select idtravel, travel, status_idstatus
from travel_db.travel
) z
on travel.idtravel=z.travel_idtravel
inner join travel_db.status
on travel.status_idstatus=status.idstatus
group by travel_idtravel
возвращения:
idtravel | travel | value | status
1 London 600 | Completed
2 NY 1500| Planned
3 Lisbon 150 | Completed
Дело в том, из-за того, как сделан запрос необходимо выбрать поля, которые вы не собираетесь использовать (а .status_idstatus, t.status_idstatus, t.status_idstatus), чтобы обеспечить одинаковое количество полей. Может быть, может быть оптимизирован, но пока работает.
выполним, но вам нужно, по крайней мере, чтобы подвести и группу по где-то ... –
Танков, он решает полбеды ... Его возвращение идентификатора | путешествия | статус | стоимость 20 Budapeste Планирование null 19 Лиссабон Завершено 5000 , так что делаете, это значение ...но его добавление первого значения для первого идентификатора и первого цикла (desp_housing) и добавление со всеми входами других таблиц ... –
Вам нужно добавить GROUP BY idtravel. Я обновлю свой ответ. – burhan