Mysql表a&;表B生成表C进行交叉核对
这是我的第一篇文章。我真的把加入TableA&TableB和按TableB过滤搞混了。如我下面所述,排序字段并生成TableOutput。如何在sql命令中实现下面的功能 表A包含特定公交路线的所有位置id 例如:路由12=A>B>C>D 其中A是第一个拾取点,D是最后一个下降点 表B按顺序包含特定公交路线的所有位置标识 根据表A和表B用户选择的行程座椅将与表输出一样保存 例如:userA通过从1到3个位置选择路线12的座位并购买车票。同时,另一个userB想要购买同一路线的车票,但从1到2选择位置,因此根据逻辑,我们关闭锁定userA购买的座位以避免冲突,因此,我需要在表格输出中记录userA的座位,以交叉检查并锁定座位 表aMysql表a&;表B生成表C进行交叉核对,mysql,codeigniter-2,Mysql,Codeigniter 2,这是我的第一篇文章。我真的把加入TableA&TableB和按TableB过滤搞混了。如我下面所述,排序字段并生成TableOutput。如何在sql命令中实现下面的功能 表A包含特定公交路线的所有位置id 例如:路由12=A>B>C>D 其中A是第一个拾取点,D是最后一个下降点 表B按顺序包含特定公交路线的所有位置标识 根据表A和表B用户选择的行程座椅将与表输出一样保存 例如:userA通过从1到3个位置选择路线12的座位并购买车票。同时,另一个userB想要购买同一路线的车票,但从1到2选择
+----------+------------------+----------------+
| route_id | from_location_id | to_location_id |
+----------+------------------+----------------+
| 12 | 1 | 2 |
| 12 | 1 | 3 |
| 12 | 1 | 4 |
| 12 | 2 | 3 |
| 12 | 2 | 4 |
| 12 | 3 | 4 |
+----------+------------------+----------------+
表B
+----------+-------------+-------+
| route_id | location_id | order |
+----------+-------------+-------+
| 12 | 1 | 1 |
| 12 | 2 | 2 |
| 12 | 3 | 3 |
| 12 | 4 | 4 |
+----------+-------------+-------+
表格输出
+------------+---------+-----------+-------------------+-----------------+
| booking_id | seat_id | ticket_id | start_location_id | end_location_id |
+------------+---------+-----------+-------------------+-----------------+
| 8 | 16 | 19 | 1 | 2 |
| 8 | 16 | 19 | 2 | 3 |
| 8 | 16 | 19 | 3 | 4 |
+------------+---------+-----------+-------------------+-----------------+
对于任意数量的阶段,您需要一个递归查询来找出a和B之间的所有点,而mysql不支持这一点。对于硬编码的限制,您可以根据需要使用任意多的自连接,但这会很快变得丑陋。你最好只是在客户端代码中循环并使用多个查询。A->B,锁B,B->C,锁C,C->D,锁D,等等…谢谢你,老兄,我会试试让你知道的