我有三个表。左连接和右连接
表1有StudentName和StudentID 表2具有BOOKNAME和的BookID 表3具有StudentID和的BookID
我想在这个格式
StudentName检索记录,BOOKNAME
一个学生可能借了很多书。
但我想要表1中所有学生的姓名,即使他没有借书。
我知道这很简单,但我根本无法理解。
我只能检索借阅学生的记录。
我将不胜感激您的意见和建议。
我有三个表。左连接和右连接
表1有StudentName和StudentID 表2具有BOOKNAME和的BookID 表3具有StudentID和的BookID
我想在这个格式
StudentName检索记录,BOOKNAME
一个学生可能借了很多书。
但我想要表1中所有学生的姓名,即使他没有借书。
我知道这很简单,但我根本无法理解。
我只能检索借阅学生的记录。
我将不胜感激您的意见和建议。
如果您想要table1
中的所有学生,您必须以此开始。
select studentname
from table1;
,那么你想要的书借和保持学生即使书列表为空:让我们使用left join
。
select table1.studentname,
table3.bookid
from table1
left join table3 on table1.studentid=table3.studentid;
现在你想要的书的名称,而不是bookid
。 left join
再次
select table1.studentname,
table2.bookname
from table1
left join table3 on table1.studentid = table3.studentid
left join table2 on table3.bookid = table2.bookid;
有一个丢失的操作员错误(3075)。但是,确保让我走上正确的道路。这有助于...... 'SELECT Table1.StudentName,Table2.BookName FROM (Table1 LEFT JOIN Table3 ON Table1. StudentID = Table3.StudentID) LEFT JOIN Table2 ON Table3.BookID = Table2。的BookID;' – dandy
听起来像作业。你已经尝试了什么?你究竟在干什么? –
今日提示:永远不要做正确的加入!你总是可以做一个左连接,只需切换表。左连接并不难理解为“主表左连接可选数据”,而右连接是“可选数据右连接主表”。 – jarlh
尝试发布您的架构定义和您尝试的查询,以便人们可以帮助您。不要指望在这里复制粘贴作业并获得即时解决方案 – JSantos