SQL加入代码检查和同行评审

时间:2014-01-02 11:01:50

标签: sql vb.net

在SQL连接方面,我仍然相当环保。下面的代码可以工作,但我希望在将错误复制并粘贴到其他工作之前,检查我是否正在以最佳方式执行此操作。

以下代码的想法是从第一个表获取PropertyID属性的名称并使用PropertyID联接他们。在这种情况下,我实际上正在使用表B中的每个字段(因此是*)

同行评审比任何事情都要多。

SELECT TblA.propertyid   AS PD, 
       TblA.propertyname AS PD, 
       TblB.* 
FROM   tbpropertydetails AS TblA 
       INNER JOIN tbpropertydetailssafeguarding AS TblB 
               ON TblA.propertyid = TblB.propertyid 
WHERE  TblA.regionid <> '0' 
ORDER  BY TblA.propertyid ASC 

我在VB.net中编程,但这实际上是独立的SQL。

1 个答案:

答案 0 :(得分:1)

一般情况下,您希望谨慎使用内部联接,因为您可能会丢失潜在的记录集。

一个例子是TbPropertyDetails中没有TbPropertyDetailsSafeguarding中的条目(没有匹配的PropertyId)的记录会消失。加入表中可能没有相应的条目,因为此信息是在以后输入的。

首先尝试使用LEFT JOIN,然后决定如何处理空记录,即主表中那些在连接表中具有匹配记录的记录。