【问题标题】:How to join tables using a primary key in the WHERE clause? [closed]如何在 WHERE 子句中使用主键连接表? [关闭]
【发布时间】: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? - 总结是这不是解决志愿者的理想方式,并且可能会适得其反。请不要将此添加到您的问题中。

标签: sql


【解决方案1】:

假设

  • 表1是部门
  • 表 2 是 emp
  • dept 表有 deptno 作为主键和其他一些列
  • emp 表有 enamedeptno 列,其中 deptnodeptno 表的 deptno 列的外键

这是一个 SQL 查询,用于选择 deptno 在 10 到 20 之间的记录中的 deptnoename

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 部分指定绝对列名来更新答案。请检查。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-05
  • 1970-01-01
  • 1970-01-01
  • 2012-02-14
  • 1970-01-01
相关资源
最近更新 更多