mysql - sql聯(lián)查,兩個(gè)表關(guān)聯(lián),查詢(xún)一個(gè)不在另一個(gè)表的記錄
問(wèn)題描述
現(xiàn)在有兩張數(shù)據(jù)表a,b
表a字段(id, title)
表b中的字段(id, aid, uid),aid是表a的外鍵
查詢(xún)不在表b中的a記錄,不要用not in, 查詢(xún)條件 uid
a表中的記錄id | title01 測(cè)試102 測(cè)試203 測(cè)試3b表中的記錄id | aid | uid01 01 0102 01 0203 01 0304 02 0105 02 03查詢(xún)條件: uid=01
問(wèn)題解答
回答1:select a.* from a left join b on a.id=b.aid and b.uid=’01’ where b.id is null group by a.id
主要在于uid=01這個(gè)過(guò)濾條件不能放在where里面,不然會(huì)把a(bǔ)表的數(shù)據(jù)過(guò)濾掉,而放在on則是先過(guò)濾b表數(shù)據(jù)再去和a表關(guān)聯(lián)
回答2:這好像不科學(xué)啊 uid要去b表取 但是卻要排除b表的記錄是不是有點(diǎn)矛盾啊

網(wǎng)公網(wǎng)安備