我将数据作为链表解释存储在mysql数据库中。SQL 中的链表
这是数据。
+------+------------+--------------+-----------+--------------------------+--------+----------+------------+------------+
| flag | sort_order | country_name | city_name | port_name | voyage | vessel | route_eta | route_etd |
+------+------------+--------------+-----------+--------------------------+--------+----------+------------+------------+
| FROM | 0 | Indonesia | Jakarta | Tanjung Priok | N010 | INFINITY | 2020-11-03 | 2020-11-04 |
| FROM | 1 | Indonesia | Semarang | Tanjung Emas | N010 | INFINITY | 2020-11-04 | 2020-11-06 |
| FROM | 2 | Indonesia | Surabaya | Tanjung Perak | N010 | INFINITY | 2020-11-06 | 2020-11-07 |
| TO | 3 | Taiwan | Taipei | Port of Taipei (Tamshui) | N010 | INFINITY | 2020-11-13 | 2020-11-13 |
| TO | 4 | Taiwan | Taichung | Port of Taichung | N010 | INFINITY | 2020-11-14 | 2020-11-14 |
| TO | 5 | Taiwan | Kaohsiung | Port of Kaohsiung | N010 | INFINITY | 2020-11-15 | 2020-11-15 |
+------+------------+--------------+-----------+--------------------------+--------+----------+------------+------------+
请注意flag
列。例如,我想从印度尼西亚到台湾的一个特定港口,通过维持哪条路线刚刚过去。我需要以下组合的数据:
flag sort_order country_name city_name port_name flag sort_order country_name city_name port_name via
FROM 0 Indonesia Jakarta Tanjung Priok TO 3 Taiwan Taipei Port of Taipei (Tamshui) Tanjung Emas, Tanjung Perak
FROM 0 Indonesia Jakarta Tanjung Priok TO 4 Taiwan Taichung Port of Taichung Tanjung Emas, Tanjung Perak, Port of Taipei (Tamshui)
FROM 0 Indonesia Jakarta Tanjung Priok TO 5 Taiwan Kaohsiung Port of Kaohsiung Tanjung Emas, Tanjung Perak, Port of Taipei (Tamshui), Port of Taichung
FROM 1 Indonesia Semarang Tanjung Emas TO 3 Taiwan Taipei Port of Taipei (Tamshui) Tanjung Perak
FROM 1 Indonesia Semarang Tanjung Emas TO 4 Taiwan Taichung Port of Taichung Tanjung Perak, Port of Taipei (Tamshui)
FROM 1 Indonesia Semarang Tanjung Emas TO 5 Taiwan Kaohsiung Port of Kaohsiung Tanjung Perak, Port of Taipei (Tamshui), Port of Taichung
FROM 2 Indonesia Surabaya Tanjung Perak TO 3 Taiwan Taipei Port of Taipei (Tamshui) DIRECT
FROM 2 Indonesia Surabaya Tanjung Perak TO 4 Taiwan Taichung Port of Taichung Port of Taipei (Tamshui)
FROM 2 Indonesia Surabaya Tanjung Perak TO 5 Taiwan Kaohsiung Port of Kaohsiung Port of Taipei (Tamshui), Port of Taichung
如果我想直接从数据库端处理这些数据,而不需要像PHP这样的编程语言,这可能吗?
这是您的解决方案,有问题吗?
CREATE TABLE PlaneRoutes(
unique_id int NOT NULL AUTO_INCREMENT,
route_id int NOT NULL,
flag varchar(250),
country_name varchar(250),
city_name varchar(250),
PRIMARY KEY(unique_id)
);
CREATE VIEW[PlaneRoutes_TO] AS
SELECT* FROM PlaneRoutes
WHERE flag = "TO"
CREATE VIEW[PlaneRoutes_FROM] AS
SELECT * FROM PlaneRoutes
WHERE flag = "FROM"
SELECT
a.route_id as `Route ID`,
a.country_name as `Flight from: Country`, a.city_name as `Flight from: City`,
b.country_name as `Flight to: Country`, b.city_name as `Flight to: City`
FROM[PlaneRoutes_FROM] as a
LEFT JOIN[PlaneRoutes_TO] as b
ON a.route_id = b.route_id
WHERE a.route_id = 124 AND b.route_id = 124
SS:https://prnt.sc/vbdeih