数据未显示在SQL中

时间:2011-04-15 17:22:52

标签: sql rows

我有一个非常简单的问题,但我无法弄明白,因为我是SQL新手。这是我的数据在尝试从SQL脚本中提取时的显示方式。

SUPPLIERID PRODUCTID DESCRIPTION SUPPLIERID 
-             -           -         1 
-             -           -         4 
-             -           -         3 
-             -           -         2 
2A            1       Metal Piece   -  
3A            2      Plastic Piece  -  
4A            3         Hinges      -  
5A            4         Hooks       -  

这是我的代码

select   "PRODUCT1"."SUPPLIERID" as "SUPPLIERID",        
  "PRODUCT1"."PRODUCTID" as "PRODUCTID",
  "PRODUCT1"."DESCRIPTION" as "DESCRIPTION",
  "SUPPLIER"."SUPPLIERID" as "SUPPLIERID" 
FROM "SUPPLIER" 
FULL OUTER JOIN PRODUCT1
ON supplier.supplierid = product1.supplierid

如果我进行LEFT或RIGHT JOIN,我只能获得一列信息。如何将所有列填入4行?

2 个答案:

答案 0 :(得分:0)

product1.supplierid supplier.supplierid匹配。

所以行之间没有真正的连接。所以你得到每个表的完整副本。

您尝试将 1,2,3,4 2A,3A,4A,5A 匹配(它们不匹配)< / p>

您要么加入错误的列(您可能希望supplier.supplieridproduct1.prdoductid ),要么您的表格没有正确关联..

答案 1 :(得分:0)

供应商ID不匹配。如果“1A”应该匹配“1”,那么你应该这样做(SQL Server):

select   "PRODUCT1"."SUPPLIERID" as "SUPPLIERID",        
         "PRODUCT1"."PRODUCTID" as "PRODUCTID",
         "PRODUCT1"."DESCRIPTION" as "DESCRIPTION",
         "SUPPLIER"."SUPPLIERID" as "SUPPLIERID" 
FROM "SUPPLIER" INNER JOIN PRODUCT1
ON supplier.supplierid + 'A' = product1.supplierid

但是你应该这样做,如果你知道“1A”应该匹配“1”。如果你不是,那么他们真的不应该匹配,这就是你使用FULL OUTER JOIN获得结果的原因。