MySQL JOIN语句交叉连接?
我不擅长使用旧的JOIN语句,也不擅长寻求一些友好的帮助。我有两张表,比如说表MySQL JOIN语句交叉连接?,mysql,sql,join,Mysql,Sql,Join,我不擅长使用旧的JOIN语句,也不擅长寻求一些友好的帮助。我有两张表,比如说表Employee: LastName DepartmentID Rafferty 31 Jones 33 Steinberg 33 Robinson 34 Smith 34 John NULL 和表部门: DepartmentID DepartmentName 31 Sales 33 Engineering 34 Clerical 35 Marketing 如果我想
Employee
:
LastName DepartmentID
Rafferty 31
Jones 33
Steinberg 33
Robinson 34
Smith 34
John NULL
和表部门
:
DepartmentID DepartmentName
31 Sales
33 Engineering
34 Clerical
35 Marketing
如果我想返回结果,其中DepartmentID=31
,并且只返回结果,其中Employee.DepartmentID=Department.DepartmentID
,那么返回的结果如下所示:
Employee.LastName Employee.DepartmentID Department.DepartmentName
Rafferty 31 Sales
(我们可以删除其中一个DepartmentID,因为它们是相同的)-实现这一点的SQL语句是什么
谢谢这里有一条比喻鱼: 在employee.departmentId=department.departmentId(其中departmentId=31)上选择*从员工内部加入部门 这是一堂隐喻性的钓鱼课: (只需按“下一步”)
我们将使用
内部联接
来匹配每个表中的记录,使用部分的将两个表之间的部门ID值相等。谢谢,“部门d”和“员工e”是否使“d”和“e”成为可重用变量?@themerlinproject-否,它只是为表名创建别名,以便在同一查询中使用。在本例中,我使用它,因此我可以简单地键入“e”而不是“Employee”,例如。但是,当您将表连接到它本身时,别名特别方便。
SELECT e.LastName, e.DepartmentID, d.DepartmentName
FROM Employee e
INNER JOIN Department d ON d.DepartmentID = e.DepartmentID
WHERE d.DepartmentID = 31
SELECT e.LastName, e.DeparmentID, d.DepartmentName
FROM employee AS e INNER JOIN department AS d ON e.DepartmentID = e.DepartmentID
WHERE e.DepartmentID = 31