![](/img/trans.png)
[英]MYSQL: I have two tables. I want to show data from table 1 and table 2 using FK in table 1
[英]Copying related MySQL Tables. I have a table, with related tables, and I'd like to have a function to copy the lot
好的,事情就是这样。
我有一个 MySQL 数据库,其中有这些表
Cruises
Fares
Itinerary
Supplements
在网站的管理面板中,我正在添加一个复制整个游轮的功能,以及相关的票价、行程和补充数据
所以第一个表 'Cruises' 有一个主键 (ID),并且在其他每个表中都作为 'cruise_id'
例如
Cruises
-------
id
destination
departs
returns
nights
Fares
-----
id
cruise_id
fare
offer
active
Itinerary
---------
id
cruise_id
port
type
Supplements
-----------
id
cruise_id
sharing
deposit
因此,当用户在管理面板中时,他们会看到现有游轮的列表以及复制链接
当用户点击复制巡航时,我想添加一个新的“巡航”,复制他们选择的巡航数据
现在我可以做到了,使用 INSERT SELECT。 但是,我也想复制票价、行程和补充,所以整个数据集都被复制了,所以以后可以做一些小的改动。
逻辑上(这显然不是 MySQL 语法)我想这样做
Select 一切从表游轮,票价,行程,补充
其中 Cruise(id) 等于选择的 Cruise(链接上传递的 url 参数)
并且 Fares, Itinerary, Supplements (cruise_id) 等于选择的游轮(链接上传递的url参数)
获取该数据并将 Cruise 字段插入到 Cruises 中,将 Fares 插入 Fares,将 itinerary 插入 Itinerary,将 Supplements 插入 Supplements
我知道我想做什么,问题是我可以吗,怎么做?
我认为您可以使用 INSERT SELECT 插入fares
、 itinerary
和supplements
。 就像是:
INSERT INTO `Fares` (`cruise_id`, `fare`, `offer`, `active`)
SELECT `cruise_id`, `fare`, `offer`, `active`
FROM `Fares`
WHERE `cruise_id` = xx;
INSERT INTO `Itinerary` (`cruise_id`, `port`, `type`)
SELECT `cruise_id`, `port`, `type`
FROM `Itinerary`
WHERE `cruise_id` = xx;
INSERT INTO `Supplements` (`cruise_id`, `sharing`, `deposit`)
SELECT `cruise_id`, `sharing`, `deposit`
FROM `Supplements`
WHERE `cruise_id` = xx;
其中,xx 应替换为所选巡航的 id。
希望这可以帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.