我有两个表:表1和表2.它们实际上是识别的(实际上,这是我想要验证的内容),但serial_id列除外。
我尝试使用列 A,B,C和D上的连接来比较表1和表2的列 E,F,G,H 中的值。问题是,我需要比较表1和表2中的特定serial_id。如果我知道相应的serial_ids对,我该如何为多个serial_id执行此操作?
例如,表1中的serial_id 423对应于表2中的serial_id 1011。
SELECT table_1.A, table_1.B, table_1.C, table_1.D, table_2.E - table_1.E, table_2.F - table_1.F, table_2.G - table_1.G, table_2.H - table_1.H FROM table_1 join table_2 using (A, B, C, D) WHERE table_1.serial_id = 423 AND table_2.serial_id = 1011
如果我还有10对,我喜欢比较怎么办?多个联合加入?由于许多原因,似乎次优。
答案 0 :(得分:0)
如果您知道要比较的所有ID,并且您要比较相同的列,则可以使用 OR
像:
WHERE
(table_1.serial_id = 423 AND table_2.serial_id = 1011) OR
(table_1.serial_id = x AND table_2.serial_id = y) OR
...
答案 1 :(得分:0)
写这个的最短方法是在值对上使用IN条件:
where (table_1.seria_id, table_2_serial_id) in ( (423,1011),
(424,1012),
...)