-3

以下の2つのテーブルがあります。

users
 -id (primary key, AUTO_INCREMENT)
 -username (varchar)
 -password (varchar)

users_messages
 -id (primary key, AUTO_INCREMENT)
 -message (text)
 -fk sender_id (int)
 -fk receiver_id(int) 
 -sent_date(datetime)
 -is_read(tinyint)

users_messagesの両方の外部キーは同じテーブルを参照します。つまり、次のように出力を取得するSQLクエリを記述したいユーザーです。

Message                Sender            Receiver
Message 1 testing      john              sonam
Message 2 testing      meena             shenaz

これどうやってするの?users_messagesテーブルからすべてのメッセージをフェッチする必要があります。sender_idとreceiver_idは、usersテーブルのusername列に置き換えられています。

ソリューションの編集:

SELECT m.id, m.message, s.username, r.username FROM users_messages m 
INNER JOIN users s ON m.sender_id = s.id
INNER JOIN users r ON m.receiver_id = r.id
4

1 に答える 1

1

試す

SELECT m.id, m.message, s.username, r.username
FROM users_messages m 
INNER JOIN users s ON m.sender_id = s.id
INNER JOIN users r ON m.receiver_id = s.id
于 2012-07-23T02:28:48.853 に答える