【发布时间】:2018-04-17 04:29:46
【问题描述】:
我在 MySQL 数据库中有两个表,如下所示:
服务:
service_id |userid | service_name | pending | accepted|completed
-----------+------------+--------------+----------+---------+--------
1 | 1 | Spa | 1 |0 |0
2 | 2 | Cleaning | 0 |1 |0
3 | 3 | General | 1 |0 |0
request_status:(id为主键)
id | service_id | Userid | status | accepted_date
----+---------------+--------+--------------+---------------
1 | 1 | 1 | Pending | 2018/03/02
2 | 2 | 2 | Pending | 2018/03/02
3 | 2 | 2 | Accepted | 2018/03/05
4 | 3 | 3 | Pending | 2018/03/06
输出
service_id | service_name | userid| Status | Date
-----------+----------------+-------+------------+------------+---------
1 | Spa | 1 | Pending | 2018/03/02
2 | Cleaning | 2 | Accepted | 2018/03/05
3 | General | 3 | Pending | 2018/03/06
对于每个服务用户选择,状态将在另一个表请求状态中更新。
我希望输出与每个服务的状态连接 2 个表。例如。对于服务 ID 2,它已被接受,因此它在第二个表中有 2 个条目。 我尝试使用 join ,但它同时获取待处理和已接受的服务 2,它应该只获取一个。
SELECT a.*, b.* FROM service a left outer join request_statusb on a.service_id =b.service_id
如何做到这一点。?请帮忙
【问题讨论】:
-
您正在寻找
JOIN。在这方面你有tried anything so far吗? -
您至少应该尝试一下或发布您的想法。
-
通过服务ID和用户ID获取请求状态表中的ID,最大日期组。然后加入服务表以获取服务名称。
标签: mysql