我遇到此查詢以獲得具有最大值的行。你能解釋一下這是如何工作與'IS NULL'一起使用左連接
SELECT s1.article, s1.dealer, s1.price, s2.article, s2.dealer, s2.price
FROM shop s1
LEFT JOIN shop s2 ON s1.price < s2.price
WHERE s2.article IS NULL;
轉儲:
CREATE TABLE `shop` (
`article` int(4) unsigned zerofill NOT NULL DEFAULT '0000',
`dealer` char(20) NOT NULL DEFAULT '',
`price` double(16,2) NOT NULL DEFAULT '0.00',
PRIMARY KEY (`article`,`dealer`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO `shop` VALUES
(0001,'A',3.45), (0001,'B',3.99),
(0002,'A',10.99),(0003,'B',1.45),
(0003,'C',1.69),(0003,'D',1.25),
(0004,'D',19.95);
該查詢從2個表(每個表中3個)中檢索6個字段,同時以表1中的PRICE字段小於表2中的PRICE字段和表2中的文章爲空爲條件對兩個表的結果進行同步。根本沒有MAX值處理。 – FDavidov
@RyanVincent我不明白左連接條件如何與null條件一起工作,以得到期望的結果 – mercy