メッセージを含むデータベースがあります。メッセージは 1 つのテーブルに格納され、ユーザー情報は別のテーブルに格納されます。メッセージ テーブルには、user テーブルの作成者の user_id を表す author_id 列があり、すべてのメッセージ列があり、"u_" + user_id の連結を表す to_address が user テーブルからあります。これらの 2 つのテーブルを結合して、author_id と to_address の両方で ID の代わりにユーザー名を表示できるものはありますか。
私はもう試した
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"
「サブクエリは複数の行を返します」を取得しました。これを成功させる方法はありますか?