4

いくつかのphpロジックを使用する代わりに、データベースで直接物事をやろうとする私の進行中の物語で、別の質問です.

例: 私はテーブルを持っています: m/ id | by | msgID、これは誰によって行われ、メッセージは何ですか。フィールドは、名前byを格納する別のテーブルに接続された整数です。通常、2 つのテーブルを結合したままにします。

SELECT m.id, m.msg, user.name FROM m LEFT JOIN user ON m.by = u.id

結果のリレーションを使用すると、たとえば次のようになります。

1 | Hello World | Richard
2 | Foo Bar     | Some else
3 | Howdy       | Richard

私はリチャードで、user.id=4

条件が満たされた場所ではyouなく、結果の関係を表示することは可能ですか?Richarduser.id = (int)

4

2 に答える 2

4
SELECT m.id, m.msg, IF(user.id = 4, 'you', user.name) AS name
FROM m LEFT JOIN user ON m.by = user.id
于 2012-05-17T16:34:51.860 に答える
3

次のようにします。

SELECT m.id, m.msg, 
(case when user.id = 4 then 'You'
 else user.name end) as username
FROM m LEFT JOIN user ON m.by = u.id 
于 2012-05-17T16:35:51.647 に答える