我觉得应该做一件简单的事情,但似乎无法找到答案。
我从客户那里获得了一份清单
例如name timestamp
我想将它们放在临时表中,然后依次查询它们,例如
select reading where reading_table
where name = t.c1 row1 and timestamp =t.c2 row1
然后循环遍历表格中的每个条目
我可以硬编码客户端文件中的每个条目作为选择,但认为应该有更好的方法来执行此操作,因为格式化是硬编码时的问题,并且可能没有为其中一些找到行。
e.g。
select reading where reading_table
where name = row1 name and timestamp = row1 timestamp
select reading where reading_table
where name = row2 name and timestamp = row2 timestamp
。 。
select reading where reading_table
where name = lastrow name and timestamp = lastrow timestamp
如果它只是一列,我会使用IN,但不确定2列是什么。
答案 0 :(得分:1)
通常您应该使用JOIN
运算符。但无论如何你非常接近:
如果它只是一列,我会使用IN但不确定2列是什么。
IN
支持多列。
SELECT reading
FROM reading_table
WHERE (name, timestamp) IN (SELECT name, timestamp FROM client);
警告!仅当两列都定义为NOT NULL
时才会起作用。