2016-11-08 2 views
0

Мой плохо, он не работал becouse одной из таблиц не был загружен, он работает ...Как получить два значения из двух разных путей соединения?

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

+--------------------+ 
|  Table1  | 
+--------+-----+-----+ 
| idA | idB | idC | 
+--------+-----+-----+ 

+--------------------+ 
|  Table2  | 
+--------+-----+-----+ 
| idA | idB | idD | 
+--------+-----+-----+ 

+--------------------+ 
|  Table3  | 
+----------+---------+ 
| idD  | value1 | 
+----------+---------+ 

+--------------------+ 
|  Table4  | 
+----------+---------+ 
| idC  | idE | 
+----------+---------+ 

+--------------------+ 
|  Table5  | 
+----------+---------+ 
| idE  | value2 | 
+----------+---------+ 

мне нужно два значения, значение1 и значение2

Я имею попробовать с этим:

SELECT Table3.value1, Table5.value2 
    FROM Table1 
    INNER JOIN Table2 ON Table1.idA = Table2.idB 
    AND Table1.idB = Table2.idB 
    INNER JOIN Table3 ON Table2.idD = Table3.idD 
    INNER JOIN Table4 ON Table1.idC = Table4.idC 
    INNER JOIN Table5 ON Table4.idE = Table5.idE 

ответ

0

Попробуйте

SELECT 
    Table3.value1, Table5.value2 
FROM 
    Table1 
JOIN 
    Table2 
ON 
    Table1.idB = Table2.idB 
JOIN 
    Table3 
ON 
    Table2.idD = Table3.idD 
JOIN 
    Table4 
ON 
    Table1.idC = Table4.idC 
JOIN 
    Table5 
ON 
    Table4.idE = Table5.idE 
-- WHERE 
-- Table1.idA = [whatever] -- hardly suggest to filter your query 

я вряд ли предположить, в конце концов, что вам фильтруйте свои данные. Этот ответ DB Schema Agnostic, что означает, что я не уверен, как работает ваша схема, но запрос равен COUNTING по наличию хотя бы совпадающей строки по всем таблицам. Если это не так, вам может потребоваться использовать соединения left outer и добавить null checking. Концепция будет примерно такой же, я называю это dragging идентификаторами до того места, где они необходимы :). Надеюсь, это имеет смысл. Я также не рекомендую вам получать дополнительную документацию по адресу SQL JOIN. Надеюсь это поможет.

+0

Мой плохой, он не работал, потому что одна из таблиц не была загружена, ЭТО РАБОТАЕТ ... Спасибо за ответ Дэвид Эспино! – rodixxi

+0

Если бы ответ был прав ... вы не возражаете против голосования @rodixxi? : D Большое спасибо –

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