【问题标题】:MYSQL using WHERE IN along with AND for several criteria SELECT clauseMYSQL 使用 WHERE IN 和 AND 用于几个条件 SELECT 子句
【发布时间】:2015-03-27 21:48:29
【问题描述】:

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

谢谢

【问题讨论】:

  • 你试过运行它吗?

标签: mysql sql select where


【解决方案1】:

试试这个:

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

最好不要使用 SELECT *。

【讨论】:

  • 这会返回两个表中的所有内容吗?还是只是 table1?
  • 我认为从两个表。我再说一遍,这是一个不好的做法!您应该只返回您需要的列...
  • 所以如果我指定 table1.* 它应该只返回 table1 数据?
  • 我不确定,但我的常识是……测试一下!
猜你喜欢
  • 2010-12-07
  • 1970-01-01
  • 2021-10-28
  • 2011-01-12
  • 1970-01-01
  • 2012-05-15
  • 2016-12-29
  • 2012-01-26
  • 1970-01-01
相关资源
最近更新 更多