MYSQL返回来自不同表的2列

时间:2015-02-12 12:44:32

标签: sql-server

我尝试使用SELECT查询从两个表中的两个单独的列返回前10行,以允许在图中使用结果数据集。我尝试使用JOIN命令但是我没有在每个表中有两个相似的列以允许我加入它们。 我一直在尝试下面的代码,但这会返回第一个参数列表,反对第二个参数的第一行,依此类推。然后,我的数据集中最后有100行!

    SELECT x.trend1_ndx, y.sine2
    FROM (SELECT TOP 10 trend1_ndx FROM trend1) as x, (SELECT TOP 10
    sine2 FROM newgraph ) as y

1 个答案:

答案 0 :(得分:0)

正如您所推断的那样,您需要在两个数据集中使用相同的值才能将它们1-by-1连接起来。 ROW_NUMBER救援!此查询为子选择中的每条记录添加1 - 10的值,然后在连接中使用此列:

SELECT x.trend1_ndx, y.sine2
FROM 
    (SELECT TOP 10 trend1_ndx, ROW_NUMBER() OVER (ORDER BY trend1_ndx) as N
     FROM trend1) as x 
INNER JOIN
    (SELECT TOP 10 sine2, ROW_NUMBER() OVER (ORDER BY sine2) as N
     FROM newgraph) as y 
ON x.N = y.N

现在,您可能需要将排序更改为其他内容,以确保x值与正确的y值配对(无论如何,这都是您必须要处理的事情,顺序如下:当您没有指定SELECT子句时,永远不会保证使用ORDER BY语句返回的数据。)