我以这种形式在table1中有一些数据:
ID1 ID2 Col3 Col4 ...
x1 a1 a
x1 a1 b
x1 a2 c
x2 a1 a
x2 a2 b
x2 a2 c
x3 a3 a
x3 a3 d
x4 a3 d
我想显示在Col3字段中具有“ a”的帐户(ID1 + ID2)的所有行。所以输出应该像
ID1 ID2 Col3 Col4 ...
x1 a1 a
x1 a1 b
x2 a1 a
x3 a3 a
x3 a3 d
这是我正在使用的查询:
SELECT *
FROM t1 table1
WHERE EXISTS
(
SELECT t2.ID1, t2.ID2
FROM t2 table1
where t1.ID1 = t2.ID1
AND t1.ID2 = t2.ID2
AND t2.Col3 = 'a'
)
这个查询要花很多时间。有没有更快的方法?
谢谢!!
我找到了一个解决方案:我正在处理的表具有数百万行。因此,查询要花费很多时间。通过在两个表上执行主键索引,我能够提高速度。
谢谢!!:)
从第1列中选择,从第2列中选择匹配的行,但仅当表1中的col3中包含正确的数据时
SELECT ID1, ID2, Col3 FROM table1 LEFT JOIN table2 ON Table1.col3 = "a";
从第1列中选择,从第2列中选择匹配的行,但仅当表1和表2在col3中包含正确的数据时
SELECT ID1, ID2, Col3 FROM table1 LEFT JOIN table2 ON Table1.col3 = "a" AND Table2.col3 = a;
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句