只是提供一个思路或实例,自己根据需要修改:
SELECT f.*,COUNT(f.docId) AS idcount FROM(
SELECT d.`docId`,d.`docTitle` FROM doc d
UNION ALL
SELECT c.`docId`,c.`docTitle` FROM `bookdoctype` a INNER JOIN `booktyperelation` b ON a.`bookDocTypeId`=b.`bookDocTypeId` LEFT JOIN `doc` c ON b.`objectId`=c.`docId`
)f GROUP BY f.docId HAVING idcount = 1
先合并,取id的count,再分组,再条件取idcount=1的数据就行了。