我有个问题:

SELECT  a.Vendor, i.Vendor
FROM    whole1 a
        LEFT JOIN whole2 i
        ON (a.Vendor = i.Vendor)
GROUP BY a.Vendor, i.Vedor
LIMIT 0, 200

默认情况下使用内部联接。Left join给出了左表中的所有结果。与右连接相同。
我要找的是左连接和右连接的组合,但不是内部连接。
我想得到一个像
AMD, NULL
ACER, NULL
NULL, INTEL
NULL, ATI

有办法吗?

最佳答案

你需要一个full outer join
不幸的是,它没有在MYSQL中实现,相反,您可以使用unionleftright连接:

SELECT a.`Vendor`, i.`Vendor`
FROM `whole1` a LEFT JOIN whole2 i ON (a.`Vendor` = i.`Vendor`)
GROUP BY a.`Vendor`, i.`Vendor`

UNION

SELECT a.`Vendor`, i.`Vendor`
FROM `whole1` a RIGHT JOIN whole2 i ON (a.`Vendor` = i.`Vendor`)
GROUP BY a.`Vendor`, i.`Vendor`

关于mysql - MySQL比较2个表的值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13320480/

10-13 05:00