在我的数据库中,我在一个表中都有Timestamps,Source,ID和Value。 基本上它显示如下
<!DOCTYPE html>
<html>
<head>
<title>Query</title>
</head>
<body>
<table border="1">
<tr>
<td>Timestamp</td>
<td>Source</td>
<td>ID</td>
<td>Value</tr>
</tr>
</table>
</body>
</html>
现在我有大量不同的来源和ID,所以我很好奇是否可以创建一个查询,其中时间戳在两个不同的源和ID之间共享。我要查找的查询结果表是这样的:
<!DOCTYPE html>
<html>
<head>
<title>Query</title>
</head>
<body>
<table border="1">
<tr>
<td>Timestamp</td>
<td>Value at Source = 123, ID = 456</td>
<td>Value at Source = 789, ID = 000</td>
</tr>
</table>
</body>
</html>
这是可以实现的,或者我最好不要将其拉出来并将数据重新排列在其他地方?
答案 0 :(得分:0)
您可以自动加入表格,以查找与某些值匹配且在其他值上不同的记录:
SELECT a.Timestamp,
a.Value AS Value_1, a.Source AS Source_1, a.ID AS ID_1,
b.Value AS Value_2, b.Source AS Source_2, b.ID AS ID_2
FROM MyTable a
INNER JOIN MyTable b
ON a.Timestamp = b.Timestamp
AND a.Source <> b.Source
AND a.ID <> b.ID
从您的问题中不太清楚输出应该是什么样子,但您应该能够使用所选列来获得您想要的内容。
如果性能很重要,您还应该在连接中使用的三列上有索引。