MYSQL使用WHERE IN和AND为几个条件的SELECT子句

时间:2015-03-27 21:48:30

标签: mysql sql select where

我想从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之间的不等式(不一定匹配)?

由于

1 个答案:

答案 0 :(得分:1)

试试这个:

SELECT * 
FROM table1
JOIN table2
ON table1.id=table2.id
WHERE table1.timestamp < table2.timestamp

这是最好的做法,永远不要使用SELECT *。