我想从SQL表中选择ID与另一个表的ID匹配的所有行,但是第一个表中与ID对应的TIMESTAMP小于第二个表中ID的TIMESTAMP。
到目前为止,我有:
SELECT t1.*
FROM table1 t1
WHERE t1.id = (SELECT t2.id
FROM table2 t2)
AND (t1.timestamp < t2.timestamp);
我的问题是,这个AND条件是否知道确保在同一行上同时满足两个条件?也就是说,它会测试相关ID的TIMESTAMP的不等式吗?或者它会检查ID是否在另一个表中,然后独立地测试每个表中第一行的TIMESTAMP之间的不等式(不一定匹配)?
由于
答案 0 :(得分:1)
试试这个:
SELECT *
FROM table1
JOIN table2
ON table1.id=table2.id
WHERE table1.timestamp < table2.timestamp
这是最好的做法,永远不要使用SELECT *。