2012-05-22 46 views
0

我的select語句遇到問題,運行時title_two和author_two未被下一個標題值正確填充。相反,他們打印出與b.title和b.author相同的內容。我試着聲明爲mysql選擇別名不起作用

`B.title AS title_two`. 

    SELECT R.bookone, B.title, B.author, 
    R.booktwo, B.title title_two, B.author author_two, 
    R.relation, R.relationlike, R.relationdislike 
    FROM relationships R 
    INNER JOIN books B ON R.bookone = B.bookid; 

有兩個表

關係,其有如下 - relationshipid,bookone,booktwo,關係,relationlike,relationdislike

然後書籍是BOOKID,標題,作者,出版商

bookone和booktwo是引用bookid的外鍵什麼即時通訊嘗試達到目的就是讓用戶點擊一個鏈接它會拿出書與其他書籍的每一個關係

+0

「B.title AS title_two」會顯示什麼內容。 ? –

+0

-1你的問題很混亂,可以從不同類型的答案中看出。 –

+0

有兩個表的關係,其有如下 - relationshipid,bookone,booktwo,關係,relationlike,relationdislike 然後書籍是BOOKID,標題,作者,出版商 bookone和booktwo外鍵引用BOOKID 想什麼IM要達到這樣的效果,當用戶點擊一個鏈接時,它會拿出書與其他書的每一種關係,而不是它剛剛提出兩次bookone的標題 – user1393064

回答

0

使用引號,而使用別名

SELECT R.bookone, B.title, B.author, 
    R.booktwo, B.title as 'title_two', B.author as 'author_two', 
    R.relation, R.relationlike, R.relationdislike 
    FROM relationships R 
    INNER JOIN books B ON R.bookone = B.bookid; 
0

的正確格式爲:ColNameNewColName

SELECT R.bookone as `BookOne` 
    , ... 
FROM relationships R 
INNER JOIN books B ON R.bookone = B.bookid; 

或者乾脆(不包括AS)

SELECT R.bookone `BookOne` 
    , ... 
FROM relationships R 
INNER JOIN books B ON R.bookone = B.bookid; 
0

你需要加入的書籍再來一次。例如:

SELECT R.bookone, B1.title, B1.author, 
    R.booktwo, B2.title title_two, B2.author author_two, 
    R.relation, R.relationlike, R.relationdislike 
    FROM relationships R 
    INNER JOIN books B1 ON R.bookone = B1.bookid 
    INNER JOIN books B2 ON R.booktwo = B2.bookid 
+0

當你做出改變時,你建議網站拋出這個 未知列'R.bookone'in'條款' – user1393064

0

他們正在做他們應該做的事情。 author_two應該與B.author相同,title_two應該和B.title相同。他們只是別名。

此外,從單個表中請求相同的列兩次將不會獲得表中的下一個結果 - 它只是返回兩次相同的列。

+0

有什麼方法可以讓我做什麼即時嘗試達到? 或者我應該把它當做兩條select語句再合併它們 – user1393064

+0

是的,Emil有答案。 – Jhong

+0

做出更改時,他建議網站在'條款 任何想法拋出未知列'R.bookone'? – user1393064