我有以下sql语句:
SELECT Useraccount.Name, Company.Name
FROM Useraccount, Company
WHERE Useraccount.CompanyId = Company.ID
此声明显示所有useraccount-names及其公司名称。
但是我也有useraccounts,其中companyId为0,我也想显示它们(在这种情况下公司的名称可能是一个空字符串)。 我怎么能这样做?
答案 0 :(得分:1)
改为使用LEFT JOIN
:
SELECT
Useraccount.Name,
Company.Name
FROM Useraccount
LEFT JOIN Company ON Useraccount.CompanyId = Company.ID;
您使用旧的INNER JOIN
语法JOIN
了两个表。请避免使用此旧连接语法,并使用JOIN
关键字使用ANSI SQL-92显式语法。有关更多信息,请参阅此处:
有关不同联接类型的详细信息:
答案 1 :(得分:1)
LEFT JOIN
可以帮到你:
SELECT Useraccount.Name, Company.Name
FROM Useraccount
LEFT JOIN Company ON Useraccount.CompanyId = Company.ID
答案 2 :(得分:0)
您可以使用 -
SELECT Useraccount.Name, Company.Name
FROM Useraccount, Company
WHERE Useraccount.CompanyId = Company.ID or Useraccount.CompanyId =0
答案 3 :(得分:0)
当您使用 LEFT JOIN 时,无论行的匹配状态如何,您都将从左表中获取所有行。
SELECT
Useraccount.Name AS UserAccountName,
Company.Name AS CompanyName
FROM Useraccount
LEFT JOIN Company
ON Useraccount.CompanyId = Company.ID;