[英]Query returning syntax error in FROM clause
我有3個不同列的表:
tableA = id(PK) & name columns
tableB = id(PK), A_ID(foreign key to tableA), name, address, etc columns
tableC = id(PK), A_ID(foreign key to tableA), name columns
我正在嘗試使用以下查詢從基於tableA name ='something'的所有表中的某些列中檢索值,但始終返回語法錯誤。
“SELECT tableA.name, tableB.name, tableB.address, tableC.name FROM
tableA, tableB, tableC JOIN tableB ON tableA.id = tableB.A_ID JOIN tableC
ON tableA.id = tableC.A_ID WHERE tableA.name = ‘something’”
如果要使用join
語法,則必須從from
語句中刪除表
SELECT tableA.name, tableB.name, tableB.address, tableC.name
FROM tableA
INNER JOIN tableB ON tableA.id = tableB.A_ID
INNER JOIN tableC ON tableA.id = tableC.A_ID
WHERE tableA.name = 'something'
我建議你使用別名,代碼可以更具可讀性:
SELECT A.name, B.name, B.address, C.name
FROM tableA A
INNER JOIN tableB B ON A.id = B.A_ID
INNER JOIN tableC C ON A.id = C.A_ID
WHERE A.name = 'something'
Ms Ms要求您指定聯接類型: INNER
; LEFT
; 或RIGHT
。 Access不能僅將JOIN
識別為INNER JOIN
的同義詞。
包含多個連接的查詢需要FROM
子句中的括號。
我還將您的引號字符更改為簡單的"
和'
。示例查詢包括類型設置引號。我不知道它們是否存在於實際的SQL中,但我會避免使用它們。
SELECT tableA.name, tableB.name, tableB.address, tableC.name
FROM
(tableA
INNER JOIN tableB
ON tableA.id = tableB.A_ID)
INNER JOIN tableC
ON tableA.id = tableC.A_ID
WHERE tableA.name = 'something'
如果您具有可用的完整版Access,請使用查詢設計器來設置連接。 設計人員知道保持數據庫引擎滿意的語法規則。
否則你可以這樣做:
SELECT tableA.name, tableB.name, tableB.address, tableC.name
FROM tableA, tableB, tableC
WHERE tableA.id = tableB.A_ID AND tableA.id = tableC.A_ID
AND tableA.name = ‘something
Parado的答案是正確的..
此外,您可以通過使用表名的別名來簡化查詢的長度。這也是很好的做法..
從表A中選擇a.name,b.name,b.address a.id = b.A_ID上的連接表B b
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.