0

我在返回简单查询时遇到问题

表 San_ChaveBematech

ID     Chave_Id     Credenciada_Id    Recibo   Impresso
55     571678       10                Test     0

表 San_CadastraBematech

ID     Maquina          Credenciada
5      000FEAB63D89     10
6      003067D6A4E7     10
7      003067D6A4D4     10

询问我有问题

SELECT San_ChaveBematech.Recibo
FROM San_ChaveBematech
JOIN San_CadastraBematech
ON San_ChaveBematech.Credenciada_Id = San_CadastraBematech.Credenciada
WHERE San_ChaveBematech.Credenciada_Id = 
       (SELECT top 1 credenciada 
        FROM San_CadastraBematech 
        WHERE maquina = '000FEAB63D89')
AND San_ChaveBematech.Impresso = 0

这个怎么运作

我有一个应用程序(Windows 窗体),我的用户将在其中注册。我会把她的登记簿保存在我的San_CadastraBematech桌子上。在我的 Web 应用程序中,我可以获得一些密钥,当我得到它时,我会将数据保存在San_ChaveBematech表中。为了打印它,我做了我放在这里的查询,但是看,我只有一个寄存器,San_ChaveBematech但我的查询返回相同的寄存器 3 次。

有人可以帮助我吗?

4

3 回答 3

0
SELECT top 1 Ch.Recibo
  FROM San_ChaveBematech Ch
  JOIN San_CadastraBematech Ca
    ON Ch.Credenciada_Id = Ca.Credenciada
 WHERE Ca.maquina = '000FEAB63D89'
   AND Ch.Impresso = 0;
于 2012-10-31T16:55:28.173 回答
0

那是因为你的子查询

SELECT top 1 credenciada 
        FROM San_CadastraBematech 
        WHERE maquina = '000FEAB63D89'

将返回值 10;这在 San_ChaveBematech.Credenciada_Id 列中的 3 条记录中匹配。

于 2012-10-31T16:55:45.427 回答
0
SELECT Top 1 San_ChaveBematech.Recibo
FROM San_ChaveBematech
JOIN San_CadastraBematech
ON San_ChaveBematech.Credenciada_Id = San_CadastraBematech.Credenciada
WHERE San_CadastraBematech.maquina = '000FEAB63D89'
    AND San_ChaveBematech.Impresso = 0
Order By San_CadastraBematech.ID Desc
于 2012-10-31T16:55:51.167 回答