2016-12-22 2 views
1

Это мой выбор, чтобы получить все данные Table2 из таблицы M-M. Все, что мне нужно для получения данных из таблиц, - это значение ID_TABLE1_FK=3.Получение всех связанных данных из таблицы «многие ко многим»

Select s1.* from TABLE2 s1 
    JOIN TABLE3 s2 ON s2.ID_TABLE2_FK = s1.ID_TABLE2_PK 
    WHERE s2.ID_TABLE1_FK=3; 

    'this query returns me data from table1 same way - I need to combine 
    'them both in 1 row, that is desired output 
    Select a1.* from TABLE1 a1 
    JOIN TABLE3 s2 ON s2.ID_TABLE1_FK = a1.ID_TABLE1_PK 
    WHERE s2.ID_TABLE1_FK=3; 

Теперь я хочу, чтобы получить все данные из Table1, а также, в том же запросе. Как?

Это мой стол конструкции:

M-M table: 
    ID_TABLE3_PK 
    ID_TABLE1_FK 
    ID_TABLE2_FK 

    TABLE1: 
    ID_TABLE1_PK 
    Name 
    Surname 

    TABLE2: 
    ID_TABLE2_PK 
    Street 
    Address 

DESIRED OUTPUT (with only ID_TABLE1_FK=3): 

Name,Surname,Street,Address 
+0

@Moudiz, нет. ТАБЛИЦА 3 объединяет записи из Таблицы 1 и Таблицы 2 с идентификатором. И я хочу, чтобы все данные из этих двух таблиц использовались только с ID_TABLE1_FK. Является ли это возможным ? – LuckyLuke82

+0

что об этом? . Выберите s1 * из TABLE2 s1 РЕГИСТРИРУЙТЕСЬ Table3 s2 ON s2.ID_TABLE2_FK = s1.ID_TABLE2_PK РЕГИСТРИРУЙТЕСЬ TABLE1 s3 ON s3.ID_TABLE2_FK = s1.ID_TABLE2_PK WHERE s2.ID_TABLE1_FK = 3; – Moudiz

+0

Мне это не совсем понятно. Можете ли вы представить небольшой пример данных и необходимый результат? – Aleksej

ответ

1

Вы можете присоединиться как table1 и table2 на table3:

SELECT s1.*, a1.* 
FROM TABLE2 s1 
JOIN TABLE3 s2 ON s2.ID_TABLE2_FK = s1.ID_TABLE2_PK 
JOIN TABLE1 a1 ON s2.ID_TABLE1_FK = a1.ID_TABLE1_PK 
WHERE s2.ID_TABLE1_FK=3; 
+0

спасибо, что сработало !! Черт, я был так близок, все, что я делал по-другому, делал *** «a» *** вместо «a1. *» В начале выбора :) – LuckyLuke82

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