Sql select查询是如何工作的?

Sql select查询是如何工作的?,sql,select,database,Sql,Select,Database,我对这个问题有疑问 天气很好,但我看不清 这个select语句是如何工作的。 如果您对这个问题有任何帮助或解释,我们将不胜感激。。 非常感谢。 这些是我的表和查询 我在这里寻找和他们工作的公司住在同一个城市的员工 表:环境管理计划 eid name street city ----------- ---------------- ------------- ------------ 1 yeman a

我对这个问题有疑问 天气很好,但我看不清 这个select语句是如何工作的。 如果您对这个问题有任何帮助或解释,我们将不胜感激。。 非常感谢。 这些是我的表和查询 我在这里寻找和他们工作的公司住在同一个城市的员工

表:环境管理计划

eid         name             street        city
----------- ---------------- ------------- ------------
1           yeman            asd           vasai
2           aksh             adssd         mumbai
3           chintan          ghfgh         mumbai
4           samual           ghfdgh        bandra
5           ddlj             fghfgh        andheri
6           jack             fghnfg        Bandra
7           bridge           gfhfgh        vasai
8           rahim            ghfgh         mumbai
9           chirag           fghfghfg      bandra
10          mistry           hhhty         bandra
11          ravi             tytey         andheri
表:公司

cid         companyname            city
----------- -------------------    ------------
1           Vasai Industries       vasai
2           Mumbai Pharmacy        mumbai
3           bandra loft            bandra
4           andheri tactics        andheri
表:=工程

eid         cid         salary
----------- ----------- -----------
1           1           200
2           3           4831
3           4           4457
4           2           20001
5           1           32221
6           2           224
7           3           784
8           1           336
9           3           2489
10          2           4789
11          1           22541
质疑


说明:

1.
从city=emp.city的公司选择cid

在这里,您可以获得有关emp和公司中相同城市的城市id

二,

在这里,您可以从works表中获取id集合,该表的cid在emp和company中是相同的

三,


这里您将获得基于emp id的所有记录,这些记录的城市在emp和city中是相同的

说明:

1.
从city=emp.city的公司选择cid

在这里,您可以获得有关emp和公司中相同城市的城市id

二,

在这里,您可以从works表中获取id集合,该表的cid在emp和company中是相同的

三,


在这里,您将获得基于emp id的所有记录,这些记录的城市在emp和city中是相同的,为什么不将此查询与联接一起使用呢?它很容易理解,然后是一组子查询

 select * from emp
 inner join works    on works.eid = emp.eid
 inner join company  on company.city=emp.city

为什么不将这个查询与连接一起使用呢?它很容易理解,然后是一堆子查询

 select * from emp
 inner join works    on works.eid = emp.eid
 inner join company  on company.city=emp.city

尝试分别执行每个子查询,您将了解每个子查询的结果以及它们放置的位置。编写此查询的人需要了解连接。实际上,我正在使用嵌套选择查询…它们总是让我大吃一惊。@BurhanKhalid:连接不一定要替换IN中的
查询尤其不是在1:n关系中,因为这是公司和工作之间的关系。尝试分别执行每个子查询,您将了解每个子查询的结果以及它们放置在各自位置上的位置。编写此查询的人需要了解连接。实际上,我正在使用嵌套选择查询……他们总是让我大吃一惊off.@BurhanKhalid:JOIN不一定是
查询中的
的替代品。尤其不是在公司和工厂之间的1:n关系中
select * from emp
where eid 
IN (select eid from works 
     where cid=(select cid from company 
                where city=emp.city))
 select * from emp
 inner join works    on works.eid = emp.eid
 inner join company  on company.city=emp.city