设置:(1)员工表(employeeID,firstName,lastName)
(1)鞋桌(shoeID,Employee_employeeID,shoeName,shoeColor,shoeBrand)
我想选择在雇员表的所有行,即使是在鞋表显示不匹配雇员(Employee_EmployeeID)是整个行呢.示例所需输出:
EmployeeID | firstName | lastName | shoeName | shoeColor | shoeBrand
1 John Smith AirMax2 Red Nike
2 Ronald Mcdonald null null null
3 James Knight null null null
4 Cindy Smith Pump Brown Cole Haan
Run Code Online (Sandbox Code Playgroud)
我尝试了很多不同的连接,我会为每个Employee获取重复的行.
ech*_*_Me 21
试试这个
SELECT e.employeeId,e.firstName,e.lastName,s.ShoeName,s.ShoeColor,s.ShoeBrand
FROM Employee e
LEFT JOIN Shoe s
ON e.employeeID = s.Employee_employeeID
Run Code Online (Sandbox Code Playgroud)
你需要一个left outer join:
select e.employeeid, e.firstname, e.lastname, s.shorname, s.shoecolor, s.shoebrand
from employee e left outer join
shoe s
on e.employeeid = s.employeeid
Run Code Online (Sandbox Code Playgroud)
您将要使用LEFT JOIN:
select e.employeeId,
e.firstName,
e.lastName,
s.ShoeName,
s.ShoeColor,
s.ShoeBrand
from Employee e
left join shoe s
on e.employeeID = s.Employee_employeeID
Run Code Online (Sandbox Code Playgroud)
即使表中没有匹配的行,A LEFT JOIN也会从employee表中返回匹配的行shoe。
如果您需要学习JOIN语法的帮助,这里是join的直观说明。
现在,如果您希望所有与两个表都匹配的行,则可以使用INNER JOIN。
| 归档时间: |
|
| 查看次数: |
33921 次 |
| 最近记录: |