我正在尝试查找column5
数据大于column6
的时刻。以下命令适用于我在一个表中的结果
SELECT * FROM table1 WHERE column5 > column6;
但我想使用相同的条件column5 > column6
查询其他表的返回值,并仍然选择all,因为某些列提供了其他相关信息和引用。例如,像
SELECT * FROM table1, table2 WHERE column5 > column6;
但是我从一个模糊的命名表column5
抱怨错误...我将命令转换为类似
SELECT * FROM table1, table2 WHERE table1.column5 > table1.column6 AND table2.column5 > table2.column6;
上述命令不会产生错误,但查询返回空结果。我也尝试了INNER JOIN命令
SELECT * FROM table1 INNER JOIN table2 ON table1.seconds = table2.seconds AND table1.column5 > table1.column6 AND table2.column5 > table2.column6;
这会产生与第一个命令类似的结果,但查询会导致table1中来自该运算符的所有行条件在同一行中重复两次,但不会显示table2结果。
还有另一种方法可以达到这个目的吗?我的大多数尝试都没有返回预期的结果。同样,我只是想让我的查询得到多个表WHERE *.column5 > *.column6
.sql file of the database pasted on codeshare.io to provide sample-data to this problem
将样本数据放在此处:
Table1:
Column5
"139062.6"
"115080"
"279718.5"
"106184"
"109483"
"152253"
"159030.3333"
"144092.5"
"154913.8333"
"52166.83333"
"18257.5"
"8907"
Column6
"224340.8"
"154723.6667"
"202486.8333"
"107184.8333"
"110674"
"257038.6667"
"151057"
"190702.6667"
"229714"
"37816.16667"
"18061.83333"
"6606.666667"
Table2:
Column5
"7544.6"
"10165.16667"
"11574.16667"
"9400.833333"
"11421.5"
"11368.5"
"11925.83333"
"9108.833333"
"8276.666667"
"8650.5"
"14998.16667"
"16229.83333"
Column6
"10109"
"14526.83333"
"12070.66667"
"7819.333333"
"9247.833333"
"7201.833333"
"8166.833333"
"4928"
"9135.5"
"9666.166667"
"8201.166667"
"10186"
Expected Result "WHERE column5 > column6" on table 1 and 2:
TABLE 1
Column5
"279718.5"
"159030.3333"
"52166.83333"
"18257.5"
"8907"
Column6
"202486.8333"
"151057"
"37816.16667"
"18061.83333"
"6606.666667"
TABLE 2
Column5
"9400.833333"
"11421.5"
"11368.5"
"11925.83333"
"9108.833333"
"14998.16667"
"16229.83333"
Column6
"7819.333333"
"9247.833333"
"7201.833333"
"8166.833333"
"4928"
"8201.166667"
"10186"
答案 0 :(得分:0)
我认为您正在寻找union运算符(假设您的表具有相同的列数):
SELECT * FROM table1 WHERE column5 > column6
UNION
SELECT * FROM table2 WHERE column5 > column6;
如果您只想要列出的rowid,SELECT rowid
取而代之(这取决于您以后如何使用查询结果,这样您就无法告诉rowid引用哪个表)。