2011-04-29 117 views
0

以下不起作用。我得到的錯誤信息,即它不承認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

回答

2

看起來您沒有在聲明中加入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