数据库架构
学生桌
╔════════════╦═════════════╦══════════════╦═════════════╗
║ student_id ║ first_name ║ last_name ║ advisor_id ║
╠════════════╬═════════════╬══════════════╬═════════════╣
║ 1 ║ Tanisha ║ Blake ║ 2 ║
║ 2 ║ Jess ║ Goldsmith ║ NULL ║
║ 3 ║ Tracy ║ Wu ║ 3 ║
║ 4 ║ Alvin ║ Grand ║ 1 ║
║ 5 ║ Felix ║ Zimmermann ║ 2 ║
╚════════════╩═════════════╩══════════════╩═════════════╝
顾问表
╔════════════╦════════════╦═══════════╗
║ advisor_id ║ first_name ║ last_name ║
╠════════════╬════════════╬═══════════╣
║ 1 ║ James ║ Francis ║
║ 2 ║ Amy ║ Cheng ║
║ 3 ║ Lamar ║ Alexander ║
║ 4 ║ Anita ║ Woods ║
╚════════════╩════════════╩═══════════╝
获取所有学生的名字、姓氏和顾问的名字和姓氏,不包括没有分配学生的顾问
2条答案
按热度按时间fnatzsnv1#
他们不一样,第一个会排斥学生,第二个不会。
8yparm6h2#
是的,这两个问题在使用内部联接的情况下是相同的,因为它不会考虑来自每个表的记录集,这些记录集在其他表中没有相应的结果。但如果使用外部联接,则可能需要在其他表中设置剔除具有空值的记录的条件。
例如,考虑这个查询
这个查询不仅会打印那些有导师的学生,也会给没有导师的学生。因此,只需检查check id为null,就可以删除不需要的记录集