如何在 WHERE 子句中使用主键连接表? [关闭]
Posted
技术标签:
【中文标题】如何在 WHERE 子句中使用主键连接表? [关闭]【英文标题】:How to join tables using a primary key in the WHERE clause? [closed] 【发布时间】:2017-09-08 03:43:27 【问题描述】:有两个表,emp 和 dept。并且两个表都将 deptno 作为主键。我想用 ename 显示 10 到 20 之间的 deptno 的详细信息。
例如:loc 在 dept 表中:带有 sal 列:
select ename,sal,loc,deptno from emp,dept
where sal between 1000 and 2000 and emp.deptno=dept.deptno;
在这个查询中,我想用 deptno 替换 sal 但给出错误。
【问题讨论】:
请在您的问题中编辑您遇到的错误。 作为参考,这个问题被严重否决了,因为:(a)在提问之前没有付出足够的努力; (b) 帖子中包含txtspk——读者往往会认为“are”等字写起来不应该太麻烦; (c) 帖子的第一个版本似乎要求读者做这项工作,(d) 问题仍然不清楚(它提到了一个错误但没有提到 what 错误),( e) 标题没有包含任何细节,只是淫秽的乞讨。 对于你的下一个问题,首先确保你已经做出了坚实的努力,然后确保上述所有点都得到纠正。 请阅读Under what circumstances may I add “urgent” or other similar phrases to my question, in order to obtain faster answers? - 总结是这不是解决志愿者的理想方式,并且可能会适得其反。请不要将此添加到您的问题中。 【参考方案1】:假设
表1是部门 表 2 是 empdept
表有 deptno
作为主键和其他一些列
emp
表有 ename
和 deptno
列,其中 deptno
是 deptno
表的 deptno
列的外键
这是一个 SQL 查询,用于选择 deptno
在 10 到 20 之间的记录中的 deptno
和 ename
:
SELECT
dept.deptno, emp.ename
FROM
dept
JOIN
emp ON dept.deptno = emp.deptno
WHERE
dept.deptno BETWEEN 10 and 20;
【讨论】:
我必须加入两个表 再次显示定义不明确的列。感谢兄弟一次又一次地帮助我。现在请再次帮助我 SELECT d.deptno, e.ename FROM dept d JOIN emp e ON d.deptno = e.deptno WHERE d.deptno BETWEEN 10 and 20; 我已经通过在 SELECT 部分指定绝对列名来更新答案。请检查。以上是关于如何在 WHERE 子句中使用主键连接表? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章