0

私は次のSQLステートメントを持っています:

SELECT Useraccount.Name, Company.Name  
 FROM Useraccount, Company
WHERE Useraccount.CompanyId = Company.ID

このステートメントには、すべてのユーザーアカウント名とその会社の名前が表示されます。

ただし、companyIdが0のユーザーアカウントもあり、それらも表示したいと思います(この場合、会社の名前は空の文字列である可能性があります)。どうやってやるの?

4

4 に答える 4

1

LEFT JOIN代わりに使用してください:

SELECT 
  Useraccount.Name, 
  Company.Name  
FROM Useraccount
LEFT JOIN Company ON Useraccount.CompanyId = Company.ID;

古い構文INNER JOINで2つのテーブルを使用していました。この古い結合構文を避け、キーワードJOINを使用してANSISQL-92明示的構文を使用してください。JOIN詳細については、次を参照してください。

さまざまな結合タイプの詳細については、次を参照してください。

于 2013-03-17T18:35:07.197 に答える
1

ALEFT JOINはあなたのためにトリックをします:

SELECT Useraccount.Name, Company.Name  
FROM Useraccount
 LEFT JOIN Company ON Useraccount.CompanyId = Company.ID
于 2013-03-17T18:37:53.740 に答える
0

使用できます-

SELECT Useraccount.Name, Company.Name  
 FROM Useraccount, Company
WHERE Useraccount.CompanyId = Company.ID or Useraccount.CompanyId =0
于 2013-03-17T18:37:54.260 に答える
0

LEFT JOINを使用すると、行の一致ステータスに関係なく、左側のテーブルからすべての行を取得します。

SELECT 
Useraccount.Name AS UserAccountName, 
Company.Name AS CompanyName 
FROM Useraccount
LEFT JOIN Company 
ON Useraccount.CompanyId = Company.ID;
于 2013-03-17T18:44:05.990 に答える