gpt4 book ai didi

sql - 需要帮助理解 SQL 中的 JOINS

转载 作者:行者123 更新时间:2023-12-01 02:54:30 26 4
gpt4 key购买 nike

我在一次采访中被问到以下 SQL 问题。请解释它是如何工作的以及它是什么。

问:有两个表:emp 表有 10 行,department 表有 12 行。

 Select * from emp,department;

结果是什么,它是什么连接?

最佳答案

它将返回两个表的笛卡尔积,这意味着 emp 的每个组合和 department将包含在结果中。

我相信下一个问题是:
块引用

How do you show the correct department for each employee?



即只显示 emp的组合和 department员工所在的部门。

这可以通过以下方式完成:
SELECT * FROM emp LEFT JOIN department ON emp.department_id=department.id;

假设 emp有一个字段叫 department_id , 和 department有一个匹配的 id领域(这在这些类型的问题中是非常标准的)。
LEFT JOIN表示将包含左侧( emp )的所有项目,并将每个员工与相应的部门进行匹配。如果未找到匹配的部门,则来自 departments 的结果字段将保持为空。请注意 正好将返回 10 行。

要仅显示具有有效部门 ID 的员工,请使用 JOIN而不是 LEFT JOIN .此查询将返回 0 到 10 行,具体取决于匹配部门 ID 的数量。

关于sql - 需要帮助理解 SQL 中的 JOINS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3547809/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com