2014-09-04 40 views
-4

我在mysql上遇到了一個奇怪的錯誤。內部加入返回列名

我的查詢是:

SELECT 
    'u.id', 
    'u.primeiroNome', 
    'u.ultimoNome', 
    'u.email', 
    'p.cpf' 
FROM user as u 
INNER JOIN pacientes as p ON u.id = p.user_id 

,這裏是 http://i.stack.imgur.com/NSqyp.png

這是對WAMP運行2.5 64位

+0

爲什麼在select語句中引用字段名稱?擺脫引號,再試一次 – Twelfth 2014-09-04 21:11:01

+1

我不是一個MySQL專家......事實上,我從來沒有做過我的生活中的MySQL查詢,但爲什麼是它引用的列?它將用'u.id'輸出x行, 'u.primeiroNome', 'u.ultimoNome', 'u.email', 'p.cpf'作爲行值 – Murdock 2014-09-04 21:11:12

+0

因此,列將具有「匿名」名稱 – Murdock 2014-09-04 21:11:58

回答

4

返回刪除您的查詢的簡單報價:

SELECT u.id 
    ,u.primeiroNome 
    ,u.ultimoNome 
    ,u.email 
    ,p.cpf 
FROM `user` as u 
INNER JOIN pacientes as p ON p.user_id = u.id 

簡單的引號被解釋爲字符串值和你的「異常」或問題的原因。

這裏是相同的查詢,但在使用反引號的:

SELECT u.`id` 
    ,u.`primeiroNome` 
    ,u.`ultimoNome` 
    ,u.`email` 
    ,p.`cpf` 
FROM `user` as u 
INNER JOIN pacientes as p ON p.`user_id` = u.`id` 

與SQL查詢工作時,瞭解單引號和反引號之間的區別是很重要的。

在這裏你可以找到關於使用這些字符的信息:When to use single quotes, double quotes, and backticks?

希望這會幫助你。

+0

謝謝喬爾,它的工作。 – pcezar91 2014-09-04 21:11:36

+2

我認爲'應該'(反撥),如果你必須逃避一個名字。 – xQbert 2014-09-04 21:12:21