我有一个名为consignment
的MYSQL表,表中有列hawb
,mawb
和service
。
我在寄售表中插入了10条记录,mawb
列值为'123'
和service='int'
对于这10个reocord,另一条记录(第11条)被插入到托运中,其中hawb=123
来自上面,service='clrc'
问题是有时没有插入额外的记录。
因此,我希望构建一个查询,它将显示寄售表中的所有记录,对于这些记录,还没有插入具有service='clrc'
的相应记录。
如有任何帮助,我们将不胜感激。
谢谢
表架构:
CREATE TABLE `consignment` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`hawb` varchar(20) CHARACTER SET utf8 NOT NULL,
`service` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL,
`mawb` varchar(45) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=441689 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci ROW_FORMAT=DYNAMIC;
示例数据:
id hawb mawb service
'414577', '200504574', '58510572940', 'INT'
'414575', '190408224', '58510572940', 'INT'
'414573', '200504627', '58510572940', 'INT'
'414571', '190514225', '58510572940', 'INT'
'414569', '200404271', '58510572940', 'INT'
'414567', '200504647', '58510572940', 'INT'
'414565', '200503872', '58510572940', 'INT'
'414563', '200501877', '58510572940', 'INT'
'414561', '200305564', '58510572940', 'INT'
'414559', '0200409819','58510572940', 'INT'
'414660', '58510572940','' , 'CLRC'
我相信你需要这样的smth:
SELECT c1.*
FROM consignment AS c1
LEFT JOIN consignment AS c2 ON (c1.mawb=c2.hawb AND c2.service='CLRC')
WHERE
c1.service='INT'
AND c2.hawb IS NULL