如何比较mysql中三个表的值
我有三个表,如下所示:如何比较mysql中三个表的值,mysql,Mysql,我有三个表,如下所示: Employee +---------------+-------------+--------+ | employee_name | street | city | +---------------+-------------+--------+ | abhishek | viman nagar | pune | | neha | lohegaon | pune | | prasahnt | viman
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 |
+------------------+--------+
我想得到所有与他们工作的公司所在城市相同的
员工姓名。我怎样才能做到这一点。应该能够通过JOIN
和WHERE
来做到这一点,如下所示:
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;
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
非常感谢你。我尝试了同样的方法,但只使用了两个and语句。如果您对答案满意,您也可以进行upvote。您应该使用ANSI JOIN语法。正因为如此,我对另一个答案投了赞成票。