SQL查询快速问题

问题描述:

以下不起作用。我得到的错误信息,即它不承认Query.Field4,Query.Field5和Query.Field6:SQL查询快速问题

SELECT Table.* 
FROM Table 
WHERE ((Table.Field1=Query.Field4) 
    AND ((Table.Field2)=(Query.Field5)) 
    AND (Table.Field3=Query.Field6)); 

我该如何解决这个问题?

编辑: 我有一个问题,但我需要能够编辑记录,当我使用JOIN子句时,它不会让我编辑记录。

+0

在查询中没有提及关于“Table2”的内容,您是如何得到这个错误的? – Bastardo 2011-04-29 21:21:24

+0

查询中的table2在哪里?这个编辑错了吗? – lobster1234 2011-04-29 21:21:46

+0

oops,我的意思是查询table2。我会很快编辑它。谢谢! – Zack 2011-04-29 21:22:30

看起来您没有在声明中加入JOIN子句。

例如:

SELECT Table.* 
FROM Table 
JOIN Query ON (Table.Field1 = Query.Field4) AND 
        (Table.Field2 = Query.Field5) AND 
        (Table.Field3 = Query.Field6) 

编辑:

当您使用GUI编辑器编辑表中的行,你可能需要做这样的事情:

SELECT Table.* 
FROM Table 
WHERE Table.UniqueIdentifier IN (
      SELECT Table.UniqueIdentifier 
      FROM Table 
      JOIN Query ON (Table.Field1 = Query.Field4) AND 
          (Table.Field2 = Query.Field5) AND 
          (Table.Field3 = Query.Field6) 
     ) 

上面的查询假设你有一个主键在y上我们的表或者一个给每行赋予自己唯一标识符的列(例如递增整数或GUID)。

+0

@Karl Nicoll我有一个问题,但我需要能够编辑记录,当我使用JOIN子句时,它不会让我编辑记录。 – Zack 2011-04-29 21:20:48

+0

你是什么意思? – ascanio 2011-04-29 21:23:42

+0

@Zack - 我假设你正在使用GUI编辑器手动编辑行。我已经为我的答案添加了另一个查询,尽管我无法提供任何保证。 – 2011-04-29 21:32:55