如何合并SQL查询结果,关联学生表与借书表获取邮箱和借书日期
解决方案
你需要通过表关联实现多表字段同时查询,使用INNER JOIN关联学生表和借书表即可,既可以返回指定的邮箱、借书日期字段,也可以直接查两个表的全部字段:
返回指定字段(邮箱+借书日期)
SELECT s.Email, b.`Borrowed Date` FROM student_table s INNER JOIN borrowed_table b ON s.StudentID = b.`Borrowed By (Student ID)` WHERE b.`Book Title` = 'Some Book';
返回两个表全部字段
SELECT * FROM student_table s INNER JOIN borrowed_table b ON s.StudentID = b.`Borrowed By (Student ID)` WHERE b.`Book Title` = 'Some Book';
注:你之前使用子查询加等于号的写法,在对应书名有多条借阅记录时会触发运行错误,JOIN写法可以规避该问题。
关于能否使用UNION of * 实现的说明
该需求无法用UNION实现,原因如下:
- UNION的作用是将多个查询的结果按行纵向合并,要求所有参与UNION的查询结果列数、对应列的数据类型完全一致,你的学生表只有2个字段、借书表有3个字段,列数不匹配,无法直接执行UNION操作。
- 你需要的是将两个表的字段横向拼接在同一行展示,属于表关联场景,只能用JOIN类语法实现,UNION的能力完全不匹配该需求。
内容的提问来源于stack exchange,提问作者pete65
相关产品推荐
相关产品推荐

