2012-01-24 58 views
0

三个商店购买三个Mysql表中记录的年份。有没有一个简单的SQL语句来找出哪些商品是由另外两家商店购买的?唯一的办法是通过多次SQL语句和比较来做到这一点。任何帮助将受到欢迎。SQL用于比较一个表唯一的三个表和列表记录

表A,B,C - 记录名单= A - (ABC) - (AB) - (AC)

+0

是否每个店有它自己的表?要更明确地表明你有问题 –

回答

0

的语法,特别是关于级联,绝对应该是错误的(没有办法,我要测试),但你可以试试这个概念:

SELECT itemId From A Where itemId Not In (Select Concat(itemId,',') From B Union Select Concat(itemId,',') From C) Union SELECT itemId From B Where itemId Not In (Select Concat(itemId,',') From A Union Select Concat(itemId,',') From C) Union SELECT itemId From C Where itemId Not In (Select Concat(itemId,',') From B Union Select Concat(itemId,',') From A)

+0

的问题写了实际运行的伪代码,不敢相信它:)只测试了它持续了半小时的iPhone,但它的工作 - 至少与整数类型的itemId。查询(应该是相同的,但在移动设备上验证过于困难):'SELECT itemId from A where itemId Not In(选择Concat(itemId,',')from B UNION SELECT CONCAT(itemId,',')From C) 工会 SELECT的itemId从B,其中的itemId不在(选择的毗连(的itemId, '')从UNION SELECT CONCAT(的itemId, '')从C) 工会 SELECT的itemId从C其中的itemId不在(选择的毗连(itemId,',')从B UNION SELECT CONCAT(itemId,',')从A)' – pong