使用唯一数据连接SQL表(列数不同!)

使用唯一数据连接SQL表(列数不同!),sql,Sql,如何连接三个或四个行数不相等的SQL表,同时确保主键/外键没有重复项 结构: 表1:id、名、姓、电子邮件 表2:id(独立于表1中的id)、名称、位置、表1\u id、表2\u id 表3:id、名称、位置 我需要表1中的所有数据,然后是表2中与表1_id对应的所有数据,没有重复项 对于新手来说有点棘手…您需要使用左连接 SELECT * FROM table1 LEFT JOIN table2 ON Table1.ID = Table2.table1_id 不确定您想对表3做什么 LEF

如何连接三个或四个行数不相等的SQL表,同时确保主键/外键没有重复项

结构:

表1:id、名、姓、电子邮件

表2:id(独立于表1中的id)、名称、位置、表1\u id、表2\u id

表3:id、名称、位置

我需要表1中的所有数据,然后是表2中与表1_id对应的所有数据,没有重复项


对于新手来说有点棘手…

您需要使用
左连接

SELECT * FROM table1 LEFT JOIN table2 ON Table1.ID = Table2.table1_id 

不确定您想对表3做什么

LEFT JOIN返回LEFT表中的所有记录,以及右表中匹配的记录。如果没有匹配项(从右侧),则结果为空

例如:

SELECT * FROM Table1 AS t
LEFT JOIN Table2 AS tt
ON t.id = tt.id
LEFT表是指左连接之前的table语句,RIGHT表是指左连接之后的table语句。如果还想添加表3,请使用相同的逻辑:

SELECT * FROM Table1 AS t
LEFT JOIN Table2 AS tt
ON t.id = tt.id
LEFT JOIN Table3 AS ttt
ON t.id = ttt.id
请注意,我为表使用别名(通过使用AS),以便更容易地引用特定表。例如,t指表1,tt指表2,ttt指表3

SQL中经常使用连接,因此研究以下内容很有用:内部连接、右连接、完全连接和自连接

希望这有帮助


祝你学习顺利

除非我误解了你的需要,我不这么认为。看起来更像是一个左连接,因为他需要表1中的所有数据。Doh,我想,然后还是写了INNER。谢谢。表3和这个问题有什么关系?你说的“表2中与表1\u id对应的所有数据都没有重复项”是什么意思?您能否提供示例数据来说明您关心的问题?