如何通过mysql获取数据
我有如下的列表播放器。如何通过mysql获取数据
+-----------+------------+------------+
| player_id | mission_id | reg_time |
+-----------+------------+------------+
| 1 | 1 | 1508392600 |
| 1 | 2 | 1508392800 |
| 1 | 3 | 1508392900 |
| 1 | 4 | 1508392822 |
| 2 | 1 | 1508392500 |
| 2 | 2 | 1508392600 |
| 2 | 3 | 1508392900 |
| 3 | 1 | 1508392600 |
| 3 | 2 | 1508392600 |
| 3 | 3 | 1508392900 |
| 3 | 4 | 1508392900 |
| 4 | 1 | 1508392600 |
| 4 | 3 | 1508392900 |
+-----------+------------+------------+
我想获得所有player_id具有
mission_id = 1,2和reg_time < = 1508392800和
mission_id = 3,4和reg_time> 1508392800如下
+-----------+------------+------------+
| player_id | mission_id | reg_time |
+-----------+------------+------------+
| 1 | 1 | 1508392600 |
| 1 | 2 | 1508392800 |
| 1 | 3 | 1508392900 |
| 1 | 4 | 1508392822 |
| 3 | 1 | 1508392600 |
| 3 | 2 | 1508392600 |
| 3 | 3 | 1508392900 |
| 3 | 4 | 1508392900 |
+-----------+------------+------------+
我怎么能通过mysql?
你可以试试这个代码来得到你想要的结果。
SELECT *
from `players` AS p
where (exists (select *
from `players` as p1
where p1.player_id = p.player_id
AND p1.mission_id = 1 AND p1.reg_time <= 1508392800)
AND exists (select *
from `players` as p2
where p2.player_id = p.player_id
AND p2.mission_id = 2 AND p2.reg_time <= 1508392800))
AND (exists (select *
from `players` as p3
where p3.player_id = p.player_id
AND p3.mission_id = 3 AND p3.reg_time > 1508392800)
AND exists (select *
from `players` as p4
where p4.player_id = p.player_id
AND p4.mission_id = 4 AND p4.reg_time > 1508392800))
表中的reg_date列在哪里提供,以及如何获得执行的查询 –
感谢您的建议。我试过你的代码,但看起来不像我预期的 我的预期结果像+ ----------- + ------------ + ------ ------ + | player_id | mission_id | reg_time | + ----------- + ------------ + ------------ + | 1 | 1 | 1508392600 | | 1 | 2 | 1508392800 | | 1 | 3 | 1508392900 | | 1 | 4 | 1508392822 | | 3 | 1 | 1508392600 | | 3 | 2 | 1508392600 | | 3 | 3 | 1508392900 | | 3 | 4 | 1508392900 | + ----------- + ------------ + ------------ + –
@ NareshKumar.P抱歉会相应地改变它 – Miggy
到目前为止您尝试了什么? –
https://dev.mysql.com/doc/mysql-getting-started/en/#mysql-getting-started-basic-ops –
你已经提到了你的问题本身的所有条件。这是一个使用逻辑运算符将它们放入WHERE子句的问题。尝试一下,如果在SQL语句中有任何失败,请在此处发布声明。 – prabushitha