我有一個包含消息的數據庫。消息存儲在一個表中,用戶信息存儲在另一個表中。在消息表中,有一個author_id列表示用戶表中作者的user_id,所有消息列,並且有一個to_address表示來自用戶表的「u_」+ user_id的串聯。是否有任何我可以加入這兩個表,以便它顯示用戶名,而不是ID在author_id和to_address。在2列上加入mysql表兩次= 1列
我已經試過
SELECT username, ..., username
FROM msgs
INNER JOIN users
ON user_id=author_id AND concat("u_",user_id)=to_address;
有明顯的錯誤 我使用子查詢,如
SELECT
(SELECT username
FROM users
INNER JOIN msgs
ON user_id=author_id
) AS "From",
(SELECT username
FROM users
INNER JOIN msgs
ON CONCAT("u_",user_id)=to_address
) AS "To",
(SELECT timestamp(message_time) FROM msgs
) AS "Sent",
(SELECT message_subject FROM msgs
) AS "Subject",
(SELECT message_text AS "Message" FROM msgs
) AS "Message"
嘗試,並獲得 「子查詢返回多個1行」。有什麼方法可以成功地做到這一點嗎?
感謝您的編輯。我正在研究這個。不用說,我對StackOverflow不是很熟悉。 – 2012-07-19 19:23:06
請注意,您可以[將行格式化爲代碼](http://meta.stackexchange.com/questions/22186/)縮進四個空格。編輯器工具欄中的「{}」按鈕可以爲您做到這一點。單擊編輯器工具欄中的橙色問號以獲取更多信息和格式化提示。在使用某些東西之前閱讀幫助是非常有用的。 – outis 2012-07-20 01:54:20