0
サイトの最後のアクティブなチャットユーザーのデータセットを取得しようとしていますが、クエリのwhere句は " 「期限切れ」している結果...Date_Subを使用したMySQLクエリはクエリで空のセットを返しますが、結合が含まれている場合はカウント= 1を返します。
は以下を返すことは、私が期待するものです...
mysql> select * from openchats where date_sub(now(), interval 15 minute) < active;
Empty set (0.00 sec)
はしかし、私は私の人生を容易にするために、テーブルのカップルに参加し、クエリに参加しています0を期待したときに1のカウントを返します。
mysql> SELECT
-> (
-> COUNT(*)
-> ) AS `count`
-> FROM
-> openchats Openchats
-> LEFT JOIN users Users ON Users.id = (Openchats.user_id)
-> LEFT JOIN chatrooms Chatrooms ON Chatrooms.id = (Openchats.chatroom_id)
-> WHERE
-> (
-> DATE_SUB(NOW(), interval 15 minute) < 'Openchats.active'
-> AND open = 1
-> );
+-------+
| count |
+-------+
| 1 |
+-------+
1 row in set, 1 warning (0.00 sec)
0ここで
は、テーブルのデータ
mysql> select * from openchats;
+----+-------------+------+---------------------+--------------------------------------+---------------------+---------------------+
| id | chatroom_id | open | active | user_id | created | modified |
+----+-------------+------+---------------------+--------------------------------------+---------------------+---------------------+
| 1 | 3 | 1 | 2017-07-31 19:14:33 | 3f189dab-597a-468f-8f6f-ae577a8e05e8 | 2017-07-31 18:38:00 | 2017-07-31 18:38:00 |
+----+-------------+------+---------------------+--------------------------------------+---------------------+---------------------+
1 row in set (0.00 sec)
で誰もが、私は2番目のクエリは、ゼロの数を返すことができますどのように私に説明できますか?
DATE_SUB(NOW(), interval 15 minute) < 'Openchats.active'
あなたがではなく、文字列「Openchats.active」にDATE_SUBの結果を比較している:
はあなたのミスが次の行にあるように見えます...