【问题标题】:MySql query to perform join between 2 tablesMySql 查询在 2 个表之间执行连接
【发布时间】:2014-01-30 08:34:23
【问题描述】:

这些是表格:

professor
+-------+--------+--------+--------+------+
| empid | name   | status | salary | age  |
+-------+--------+--------+--------+------+
|     1 | Arun   |      1 |   2000 |   23 |
|     2 | Benoy  |      0 |   3000 |   25 |
|     3 | Chacko |      1 |   1000 |   36 |
|     4 | Divin  |      0 |   5000 |   32 |
|     5 | Edwin  |      1 |   2500 |   55 |
|     7 | George |      0 |   1500 |   46 |
+-------+--------+--------+--------+------+

works
+----------+-------+---------+
| courseid | empid | classid |
+----------+-------+---------+
|        1 |     1 |      10 |
|        2 |     2 |       9 |
|        3 |     3 |       8 |
|        4 |     4 |      10 |
|        5 |     5 |       9 |
|        6 |     1 |       9 |
+----------+-------+---------+

以上是我需要从中检索数据的表。

问题是返回参加 Class 10 和 Class 10 的员工列表 第 9 课。

我写的查询是:

select professor.name 
from inner join works
on professor.empid=works.empid
where works.classid=9 and works.classid=10;

我知道我想要的结果是Arun,但我不知道检索所需结果的确切查询应该是什么。

【问题讨论】:

  • 您的查询返回了什么?
  • 它返回空集。我知道我尝试的查询不正确。我不知道如何执行它。请帮忙。

标签: mysql inner-join


【解决方案1】:

他想要9班和10班的教授。所以作品中有2个不同的记录需要匹配。

select professor.name from  professor
join works A on A.empid=professor.empid and A.classid=9
join works B on B.empid=professor.empid and B.classid=10

http://sqlfiddle.com/#!2/4be88a/1

【讨论】:

  • 这给了我所需的结果。非常感谢:)
  • 再次感谢该网站链接:)
【解决方案2】:

试试这个

select professor.name 
from professor inner join works
on professor.empid=works.empid
where works.classid=9 OR works.classid=10;

(或)

select professor.name 
from professor inner join works
on professor.empid=works.empid
where works.classid IN ('9','10')

【讨论】:

  • 您的第一个查询与 Francis S 相同,第二个查询 IN 将不起作用,因为他正在寻找这两个类。
  • @SureshKamrushi 第一个查询不同,如果您找不到不同之处,请询问我,而不是投票
【解决方案3】:
SELECT prof.name FROM professor AS prof    
JOIN works     
ON prof.empid = works.empid    
WHERE works.classid IN (9, 10);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-18
    • 2013-02-20
    • 2012-07-29
    • 2014-03-15
    • 1970-01-01
    • 2015-02-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多