Sql 从多对多表中获取所有相关数据

Sql 从多对多表中获取所有相关数据,sql,oracle,select,Sql,Oracle,Select,这是我选择从M-M表中获取表2的所有数据。我需要从表中获取的所有数据都是ID\u TABLE1\u FK=3value 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

这是我选择从M-M表中获取
表2
的所有数据。我需要从表中获取的所有数据都是
ID\u TABLE1\u FK=3
value

    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;
现在,我还想在同一个查询中从
表1
中获取所有数据。怎么做

这些是我的桌子设计:

    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

您可以在
table3
上加入
table1
table2

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;

@Moudiz,no.TABLE3使用ID连接Table1和Table2中的记录。我需要这两个表中的所有数据,只使用ID_Table1_FK。有可能吗?这个呢?选择s1.*从s2.ID\U table 2上的表2 s1连接表3 s2\U FK=s1.ID\U table 2\U PK从s3.ID\U table 2\U FK=s1.ID\U table 2\U PK上的表1 s3,其中s2.ID\U table 1\U FK=3;我不太清楚。你能提供一个数据和所需结果的小例子吗?@Moudiz,你的意思可能是:从表2中选择s1.*在s2.ID\u TABLE2\u FK=s1.ID\u TABLE2\u PK上连接表3 s2.ID\u TABLE2\u FK=s1.ID\u TABLE2\u PK,其中s2.ID\u TABLE1\u FK=3…但不幸的是,它只返回表2中的数据。您的查询没有返回任何内容。@LuckyLuke82能否提供简单数据和所需结果?正如aleksej所建议的那样,这很有效!!该死,我离得太近了,我所做的一切都不同,只是在select的开头用了“a”而不是“a1.*”)