MySQL查询从不同的表中获取成员的新位置
我试图从两个表中获取成员的新排名,不包括具有相同排名和空值的成员。我已经尝试了很多查询,但是它们返回所有成员的列表和null 选择m.member\u id,m.rank\u id old\u rank\u id, 如果mp.tpc_x>mp.tpc_y,mp.tpc_y,mp.tpc_x成对出现, 选择p.rank\u id 来自绩效奖金 p.rank\u id=m.rank\u id上的左连接成员mMySQL查询从不同的表中获取成员的新位置,mysql,sql,Mysql,Sql,我试图从两个表中获取成员的新排名,不包括具有相同排名和空值的成员。我已经尝试了很多查询,但是它们返回所有成员的列表和null 选择m.member\u id,m.rank\u id old\u rank\u id, 如果mp.tpc_x>mp.tpc_y,mp.tpc_y,mp.tpc_x成对出现, 选择p.rank\u id 来自绩效奖金 p.rank\u id=m.rank\u id上的左连接成员m 其中pairs>=p.pairs\u count AND pairs您可以显示给定数据的期望
其中pairs>=p.pairs\u count AND pairs您可以显示给定数据的期望结果吗?我编辑了上面的一些描述,还添加了我得到的演示结果和期望结果。谢谢,我猜您想筛选出旧的\u rank\u id为0的记录。因为old_rank_id是m.rank_id的别名,所以在查询结束时使用其中m.rank_id=0。
+-------------+----------------+-----------------------+
| member_id | member_name | rank_id |
+-------------+----------------+-----------------------+
| 10000 | XYZ | 0 |
| 10001 | YSA | 0 |
+-------------+----------------+-----------------------+
+-------------+----------------+----------+
| member_id | tpc_x | tpc_y |
+-------------+----------------+----------+
| 10000 | 150 | 100 |
| 10001 | 300 | 200 |
+-------------+----------------+----------+
+-----------+------------+----------------+-------------+
| rank_id | rank_name | pairs_count | max_pairs |
+-----------+------------+----------------+-------------+
| 1 | Student | 100 | 199 |
| 2 | Teacher | 200 | 399 |
+-----------+------------+----------------+-------------+
+-------------+-------------+---------------+
+ member_id | old_rank_id | new_rank_id |
+-------------+-------------+---------------+
| 10000 | 0 | 1 |
| 10001 | 0 | 2 |
| 10002 | 4 | 3 |
| 10003 | 5 | null |
+-------------+-------------+---------------+
+-------------+-------------+---------------+
+ member_id | old_rank_id | new_rank_id |
+-------------+-------------+---------------+
| 10000 | 0 | 1 |
| 10001 | 0 | 2 |
+-------------+-------------+---------------+