我知道如何获得 Max ID。这很容易。但我有一种情况,MaxID 可能是值为 1 的行。示例.. 我有以下表格:
CREATE TEMPORARY TABLE people (
id INT NOT NULL
,NAME VARCHAR(50) NOT NULL
);
INSERT INTO people (id, NAME) VALUES (1, 'tony');
INSERT INTO people (id, NAME) VALUES (2, 'dave');
INSERT INTO people (id, NAME) VALUES (3, 'dan');
CREATE TEMPORARY TABLE orders (
id INT NOT NULL
,peopleid INT NOT NULL
,VALUE INT
);
INSERT INTO orders (id, peopleid, VALUE) VALUES (1, 1, NULL);
INSERT INTO orders (id, peopleid, VALUE) VALUES (2, 1, 1);
INSERT INTO orders (id, peopleid, VALUE) VALUES (3, 1, NULL);
INSERT INTO orders (id, peopleid, VALUE) VALUES (4, 2, NULL);
INSERT INTO orders (id, peopleid, VALUE) VALUES (5, 2, NULL);
INSERT INTO orders (id, peopleid, VALUE) VALUES (6, 2, NULL);
INSERT INTO orders (id, peopleid, VALUE) VALUES (7, 2, NULL);
INSERT INTO orders (id, peopleid, VALUE) VALUES (8, 1, NULL);
INSERT INTO orders (id, peopleid, VALUE) VALUES (9, 2, NULL);
当我运行查询时:
SELECT * FROM people AS p
LEFT JOIN orders AS o ON o.peopleid = p.id
我得到结果:
id name id peopleid value
1 tony 1 1 null
1 tony 2 1 1
1 tony 3 1 null
1 tony 8 1 null
2 dave 4 2 null
2 dave 5 2 null
2 dave 6 2 null
2 dave 7 2 null
2 dave 9 2 null
3 dan null null null
我需要结果
id name id peopleid value
1 tony 2 1 1
2 dave 9 2 null
3 dan null null null