2016-03-01 56 views
0

在我的数据库中,我在所有表中都有Timestamps,Source,ID和Value。 本质上它会显示这样的SQL查询新列

<!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>

现在我有一吨的不同来源和编号的,所以我很好奇,如果我能创造一个时间戳两个不同的来源和共享查询标识。从我要寻找的查询得到的表是这样的:

<!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 

这不是从你的问题很清楚准确的输出应该是什么样子,但你应该是能够玩选定的列来获得你想要的东西。

如果性能很重要,您还应该在连接中使用的三列上有索引。