0

フィールドに対して挿入された値をチェックするクエリを作成しようとしています。サブクエリを使用してこれを達成しようとしていますが、行き詰まりました。私が達成しようとしていること:

(message1) User1 says: Hello User2
(message2) ChatX says: User1, user2 said hello to you! 

それを達成するには、like ステートメント内にサブクエリが必要であると考えました。

SELECT chat.id, chat.userid, chat.message, user.userid, user.username 
FROM chat, user 
WHERE LOWER(message) LIKE CONCAT('hello ', (SELECT user.username FROM user WHERE XXX = user.username)) 
  AND chat.userid = user.userid

LIKE ステートメントの XXX は、誰かが挨拶したユーザー名です。ユーザーテーブルに対してチェックし、メッセージがユーザー出力ChatXの行と一致するかどうかを確認する必要があります。私の質問は、XXX をどのように機能させ、どのように設定するのですか?

4

1 に答える 1

1
SELECT c.id, c.message,
       sender.userid, sender.username,
       receiver.userid, receiver.username
FROM chat c
JOIN user sender ON c.userid = sender.userid
JOIN user receiver ON LOWER(message) like CONCAT('hello ', receiver.username)
于 2013-05-21T16:00:06.863 に答える