从SELECT语句中排除列

时间:2015-01-26 13:48:04

标签: sql vb.net ms-access-2007

您好我试图了解如何从SELECT语句中排除列, 我加入了两张桌子。

第一张表:

 |--ID--|--Name--|--Date 1--|--Date 2--|

第二张表:

|--ID--|--Tax--|--Total--|

输出:

  |--ID--|--Name--|--Date 1--|--Date 2--|--ID--|--Tax--|--Total--|

这是我想要的输出:

   |--Name--|--Tax--|--Total| 

这是我的代码:

Dim loadq As String =
            "SELECT HelperEmpEarns.*, HelperEmpDed.*" & _
            "FROM (HelperEmpEarns RIGHT JOIN HelperEmpDed ON HelperEmpEarns.EmpPID = HelperEmpDed.EmpPID) " & _
            "WHERE [Position] LIKE '%Helper%' AND [Pday1] >= # " & MetroDateTime1.Value.ToShortDateString & "# AND [Pday2] <= # " & MetroDateTime2.Value.ToShortDateString & "# AND HelperEmpEarns.EmpPID = HelperEmpDed.EmpPID"

5 个答案:

答案 0 :(得分:1)

只需枚举您要显示的字段,而不是放*,这意味着&#34;所有字段&#34;:

Dim loadq As String =
                "SELECT HelperEmpEarns.[Name], HelperEmpDed.Tax, HelperEmpDed.Total" & _
                "FROM (HelperEmpEarns RIGHT JOIN HelperEmpDed ON HelperEmpEarns.EmpPID = HelperEmpDed.EmpPID) " & _
                "WHERE [Position] LIKE '%Helper%' AND [Pday1] >= # " & MetroDateTime1.Value.ToShortDateString & "# AND [Pday2] <= # " & MetroDateTime2.Value.ToShortDateString & "# AND HelperEmpEarns.EmpPID = HelperEmpDed.EmpPID"

我将[Name]放在方括号中,以帮助将其标识为字段名称而不是SQL关键字。

答案 1 :(得分:1)

使用Select HelperEmpEarns.*将返回表中的所有列名。这通常不被认为是一种良好的开发实践。

一种更受欢迎的方法是仅返回您需要的列Select HelperEmpEarns.Col1Name, HelperEmpEarns.Col2Name...

这有几个好处:

  1. 如果有人更改了数据库设计并添加或删除了列,则除非他们删除了您需要的列之一,否则它不会影响您的查询。
  2. 与返回所有列相比,返回数据集可能要小得多。
  3. 所以,改变它:

    Dim loadq As String =
                "SELECT HelperEmpEarns.Col1Name, HelperEmpEarns.Col2Name, HelperEmpEarns.Col3Name, " & _
                "HelperEmpDed.Col1Name, HelperEmpDed.Col2Name" & _
                "FROM (HelperEmpEarns RIGHT JOIN HelperEmpDed ON HelperEmpEarns.EmpPID = HelperEmpDed.EmpPID) " & _
                "WHERE [Position] LIKE '%Helper%' AND [Pday1] >= # " & MetroDateTime1.Value.ToShortDateString & "# AND [Pday2] <= # " & MetroDateTime2.Value.ToShortDateString & "# AND HelperEmpEarns.EmpPID = HelperEmpDed.EmpPID"
    

答案 2 :(得分:1)

您可以使您的选择语句更具体,并删除通配符*

SELECT firstTable.Name, SecondTable.Tax, SecondTable.Total
    ...

有关SELECT语句的更多信息,请查看w3schools SQL SELECT Statement

答案 3 :(得分:0)

select只需要列而不是所有(*)

SELECT HelperEmpEarns.Name, HelperEmpDed.Tax,HelperEmpDed.Total 
from..

答案 4 :(得分:0)

SELECT firsttable.name,secondtable.tax,secondtable.total 
FROM firsttable 
JOIN secondtable using(ID);