检索具有某些条件的相同列的总和的记录

时间:2012-12-16 04:10:51

标签: mysql sql

我有两个表table1table2,结构相同。列为Rabcd; abcdINTRVARCHAR

我需要R atable1table2的总和小于40且bc相同的所有dSELECT table1.R FROM table1,table2 where table1.a + table2.a <40 or table1.b + table2.b <40 or table1.c + table2.c <40 or table1.d + table2.d <40;

我执行的声明是:

    table1                   table2
R   a   b   c   d            R      a     b    c    d
i1 45  28  29  22           i1      8   20   13    8
i2 28  28  29  30           i2      12   12  16     20 
i2 28  28  10  30           i2      12   12  16     20 
i2 28  5  29  30            i2      12   12  16     20 
i2 28  28  10  30           i2      12   12  16     20 
i2 28  28  29  30           i2      15   15  10     12 
i2 10  12  15  20           i2      8     3  6      12 

expected results 
i1

because table1.d+table2.d <40 for R = i1

但它给出了意想不到的结果。返回的行数远远大于两个表的记录数之和。

{{1}}

1 个答案:

答案 0 :(得分:1)

目前还不完全清楚,但你可能想要的是:

SELECT table1.R FROM table1,table2 where
table1.R = table2.R and
(table1.a + table2.a <40 or
 table1.b + table2.b <40 or 
 table1.c + table2.c <40 or 
 table1.d + table2.d <40);

请参阅此FIDDLE