设置:(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
我尝试了很多不同的连接,我会为每个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
你需要一个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
您将要使用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
即使表中没有匹配的行,A LEFT JOIN也会从employee表中返回匹配的行shoe。
如果您需要学习JOIN语法的帮助,这里是join的直观说明。
现在,如果您希望所有与两个表都匹配的行,则可以使用INNER JOIN。