Mysql表a&;表B生成表C进行交叉核对

Mysql表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选择

这是我的第一篇文章。我真的把加入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的座位,以交叉检查并锁定座位

表a

+----------+------------------+----------------+
| 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,等等…谢谢你,老兄,我会试试让你知道的