2015-03-31 15 views
0

У меня есть довольно большое заявление SQL, что я работаю с в MS Access 2010. Здесь идет:Используя результаты запроса в том же запросе

SELECT 
W.ID AS wid, 
W.wpt_ty AS ty, 
W.wpt_num AS num, 
W.wpt_nxt AS nxt, 
W.latdeg AS lat, 
W.londeg AS lon, 
W.alt AS alt, 
W.mission_id AS mid, 
W.ctg1 AS ctg1, 
W.ctg2 AS ctg2, 
W.ctg3 AS ctg3, 
W.ctg4 AS ctg4, 
W.wpt_index AS indx, 
W.vel AS vel, 
W.tu AS tu, 
R.route_num AS rnum, 
R.AC_num AS ac, 
R.route_type AS rtype, 
R.LastUpdatedOn AS d8, 
R.LastUpdatedBy AS auth, 
R.flight_wpt_count AS wfcount, 
M.mission_name AS msnName, 
V.Description AS vstatus, 
R.disallowed_reason_id AS did, 
CW.wpt_num AS c1num, 
CR.matching_route_id AS c1mrid, 
CW.wpt_index AS c1indx, 
CRU.runway_name AS c1rnwy, 
CR.route_num AS c1rnum 
FROM Validation AS V 
(RIGHT JOIN Runways AS CRU 
INNER JOIN (Routes CR 
INNER JOIN Waypoints CW ON CR.ID = CW.route_id) 
ON Runways.ID = Routes.runway_id 
INNER JOIN ((Missions as M 
INNER JOIN Routes AS R ON M.ID = R.mission_id) 
INNER JOIN Waypoints AS W ON (R.ID = W.route_id) 
AND (M.ID = W.mission_id)) ON 
V.ID = R.validated 
WHERE (((R.matching_route_id)=307543) AND ((R.validated) <> 0)) 
AND (((CW.mission_id)=mid) AND ((CW.wpt_num) = (ctg1)))) 

Если вы посмотрите на дно, вы можете увидеть Я ссылаюсь на значения ctg1 и mid справа Присоединиться, в то время как Внутренние ссылки ссылаются на другие литералы. В конце концов, я хочу сделать то же самое для ctg2, ctg3 и ctg4

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

  • Использование значений выбора ранее в этом запросе из соединения «Внутренний/левый» и вдавливания их в значения, необходимые для правого соединения.
  • Возможно, я неправильно использую соединения, но я думал, что они связаны с объединением данных из возможных тех же таблиц, только на разных опорных точках.
  • Как использовать графический интерфейс MS Access, чтобы написать такой запрос.
  • Я знаю, что это для MS Access, но я помечен для MySQL на случай, если есть похожие запросы, которые можно портировать в MS Access?

ответ

0

Вы пробовали использовать UNION для этого?

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

Будьте осторожны, он будет съедать (показывать только один из ваших) дубликаты в наборе результатов.

Я также предлагаю читать на различных типах объединений для собственной выгоды, в следующем ответе:

MYSQL Joins

+0

Ну дело о Союзов они просто добавить несколько строк в результатах. Я хочу, чтобы значения добавлялись как новые столбцы. –

+0

Повторное чтение этого вопроса - как я могу присоединиться к результатам после объединения? Опять же, мне нужно передать результаты из «первого» запроса во «второй». Я не знаю, как это сделать. –

Смежные вопросы