如何比较mysql中三个表的值

时间:2016-10-19 20:06:11

标签: mysql

我有三张表,如下所示:

Employee
+---------------+-------------+--------+
| employee_name | street      | city   |
+---------------+-------------+--------+
| abhishek      | viman nagar | pune   |
| neha          | lohegaon    | pune   |
| prasahnt      | viman nagar | pune   |
| rahul         | viman nagar | pune   |
| rahul singh   | lohegaon    | mumbai |
+---------------+-------------+--------+

Works
+---------------+------------------+--------+
| employee_name | company_name     | salary |
+---------------+------------------+--------+
| prasahnt      | First Bank Corp  |  90000 |
| rahul         | First Bank Corp  |  85000 |
| abhishek      | First Bank Corp  |  95000 |
| rahul singh   | Second Bank Corp |  45000 |
| neha          | Second Bank Corp |  65000 |
+---------------+------------------+--------+

Company
+------------------+--------+
| company_name     | city   |
+------------------+--------+
| First Bank Corp  | pune   |
| Second Bank Corp | mumbai |
+------------------+--------+

我想让所有与他们所在公司拥有相同城市的employee_name。我该怎么做。

2 个答案:

答案 0 :(得分:1)

应该可以使用JOINWHERE执行此操作,如下所示:

SELECT * 
FROM Employee e
JOIN Works w ON w.employee_name = e.employee_name
JOIN Company c ON c.company_name = w.company_name
WHERE c.city = e.city

答案 1 :(得分:0)

SELECT DISTINCT e.employee_name
  FROM employee e,
       works w
       company c
 WHERE e.employee_name = w.employee_name
  AND w.company_name = c.company_name
  AND e.city = c.city;