可以说,使用交叉(也许负)我有两个表:如何在这个例子中
TableA
ID, Time, Size
0 5:00 600
1 8:00 800
2 7:00 100
3 1:50 140
4 2:40 300
12 3:40 300
TableB
ID, Time, Size
8 5:00 600
1 8:00 800
2 8:00 900
3 1:50 140
5 2:40 300
12 3:40 300
现在,我想这两个表进行比较:给表A的所有行和B,其中的ID是相同的(或者说可以说ID在哪里存在于这两个表中)但是低于12--以便从表B中除去表A ID 0, 4, 12
并从表B ID 8, 5, 12
之后,我只剩下3行。现在我想踢出来的所有行那里是整个表A行ID之间的一个或多个差异==表B行ID
在年底会有(如果我看到正确的)作为输出:
ID, Time, Size
1 8:00 800
3 1:50 140
对于这个解决方案,我需要肯定相交,也许减去。起初,我想这个SQL语句会做我想做的:
select * from TableA where ID < 12 intersect select * from TableB where ID < 12
minus
select * from TableB where ID < 12;
但是,这不是很好。因为相交,Im使用相交的整个行,我应该只使用相交的ID和IF如果我有相交的ID(这将是1,2,3),那么我必须使用ID TableA with ID 1,2,3
减去TableB with ID 1,2,3
。但是如何?或者我错过了什么?有任何想法吗?谢谢
嗨。这个'in(select ..)'看起来不错。但是,为什么有工会,是不是更好地得到我想要的? – sabisabi
Mysql减号用于仅查看来自不在另一个表中的表的记录。 –