查询表的一个城镇的两列

Posted

技术标签:

【中文标题】查询表的一个城镇的两列【英文标题】:Querying on both columns in one town of a table 【发布时间】:2018-04-28 23:20:34 【问题描述】:

我脑子里有什么应该做的简单的事情,但似乎找不到答案。

客户给了我一份清单 例如name timestamp

我想将它们放在一个临时表中,然后依次查询它们,例如

select reading where reading_table 
where name = t.c1 row1 and timestamp =t.c2 row1

然后循环表格中的每个条目

我可以将客户端文件中的每个条目硬编码为选择项,但我认为应该有更好的方法,因为在硬编码时格式化是一个问题,并且可能找不到其中一些行。

例如

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 列是什么。

【问题讨论】:

【参考方案1】:

通常您应该使用JOIN 运算符。但无论如何你都非常接近:

如果它只是一列,我只会使用 IN,但不确定 2 列是做什么的。

IN 支持多列。

SELECT reading 
FROM reading_table 
WHERE (name, timestamp) IN (SELECT name, timestamp FROM client);

警告!这只有在两列都定义为NOT NULL时才有效。

【讨论】:

以上是关于查询表的一个城镇的两列的主要内容,如果未能解决你的问题,请参考以下文章

怎样一个表中的2个查询结果合并到一个表中的两列

查询嵌套查询结果中的两列

获取具有多个枢轴的两列的总和

检查没有原始查询的两列组合

在使用原始查询时选择比较 ormlite 中的两列值的行

如何根据 laravel eloquent orm 中的两列进行查询