私は 2 つのテーブルを持っています。テーブル reseau_stream には、ユーザーの投稿に関するさまざまな情報があります。ユーザーは他の人の投稿を共有できます。テーブル reseau_share はその接続を作成します (以下に両方のテーブルの詳細があります)。ここで、ユーザーが他の誰かの投稿を共有した場合、reseau_share の日時を使用してクエリを並べ替える必要があります。
MySQL のスキルはあまりありませんが、助けを借りて、最終的に以下のクエリにたどり着きました。reseau_share に行がある場合にのみ機能します。reseau_share が空の場合、クエリは 0 の結果を返します。理由が本当にわかりません。誰でも理由を特定できますか? 乾杯。
テーブル reseau_stream
id user_id content datetime
1 100 Lorem Ipsum1 2013-03-04 19:35:02
2 100 Lorem Ipsum2 2013-03-04 12:35:02
テーブル reseau_share
id user_id target_id stream_id datetime
-------------------- EMPTY ------------------------
クエリ
SELECT reseau_stream.id,
reseau_stream.user_id,
reseau_stream.content,
IF(reseau_stream.user_id = 100, reseau_stream.datetime, reseau_share.datetime) as datetime
FROM reseau_stream, reseau_share
WHERE reseau_stream.id
IN (
SELECT id
FROM reseau_stream
WHERE user_id = 100
UNION
SELECT stream_id
FROM reseau_share
WHERE user_id = 100
) ORDER BY datetime DESC;