Sql 从多对多表中获取所有相关数据
这是我选择从M-M表中获取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
表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.*”)