查询3个表

时间:2016-04-27 02:37:57

标签: sql sql-server

我需要从3列的查询中获得结果。

我尝试了这个查询:

select distinct 
    f1.deskripsi_pekerjaan,f2.indikator_keberhasilan,f3.hasil_kerja, 
    ROW_NUMBER() over 
    (
         partition by f1.deskripsi_pekerjaan  
         order by f1.id_penilaian
    ) as 'Row Number' 
from form_3_1 f1 , form_3_2 f2 , form_3_3 f3;

Here是执行查询结果的图像。

我可以获得明确的权利吗?它有相同的记录。我每列只需要两个记录。

感谢您的帮助..

2 个答案:

答案 0 :(得分:0)

您正在使用笛卡尔积/表的交叉连接,然后使用row_number(),当您使用row_number()时,您将获得不同的记录。

所以distinct子句不会按照你的要求行事。

请在row_number()详细信息读取

下面的链接

https://msdn.microsoft.com/en-IN/library/ms186734.aspx

请点击以下链接进行交叉加入

http://www.w3resource.com/sql/joins/cross-join.php

答案 1 :(得分:0)

从上面的查询我明白,你已经有了不同的记录,你只需要两行。为此,您可以使用热门记录

select distinct Top 2
f1.deskripsi_pekerjaan,f2.indikator_keberhasilan,f3.hasil_kerja, 
ROW_NUMBER() over 
(
     partition by f1.deskripsi_pekerjaan  
     order by f1.id_penilaian
) as 'Row Number' 
from form_3_1 f1 , form_3_2 f2 , form_3_3 f3;