我的桌子:
人| Id |名称|| — | —– || 1 |鲍勃|| 2 |玛丽|
销售| SalesID |是PersonID |年|金额|| ——- | ——- | —- | —— || 1 | 1 | 2010 | 100 | ……
你可以尝试让 sales.Year = 2010 是 on 条款而不是 where 条款。
sales.Year = 2010
on
where
的 MySQL 5.6架构设置 强> :
CREATE TABLE person( Id INT, Name VARCHAR(50) ); INSERT INTO person VALUES (1,'Bob'); INSERT INTO person VALUES (2,'Mary'); CREATE TABLE sales( SalesID INT, PersonID INT, Year INT, Amount INT ); INSERT INTO sales VALUES (1,1 ,2010,100 );
的 查询1 强> :
SELECT * FROM person LEFT JOIN sales on person.ID = sales.PersonID and sales.Year = 2010 GROUP BY person.ID
的 结果 强> :
| Id | Name | SalesID | PersonID | Year | Amount | |----|------|---------|----------|--------|--------| | 1 | Bob | 1 | 1 | 2010 | 100 | | 2 | Mary | (null) | (null) | (null) | (null) |
的 注意 强>
如果你在外面做 JOIN ,添加 WHERE 条件 ON 表的子句。这是必须的,因为添加一个 WHERE 只会得到的条款 sales.Year = 2010 行。
JOIN
WHERE
ON