Вы можете попытаться разрешить 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
.