根据 sql 中的另一个 table 列值创建 table 列
create table column based on another table column value in sql
是否可以根据另一个 table 列值创建 table 列?
现有的 table(geozone) 看起来像这样并且它不是固定的(可以包含更多 ID 和名称)
id | name
1 | UK
2 | CANADA
3 | JAPAN
我正在尝试从 php 页面创建一个新页面
mysql_query("CREATE TABLE shipping (
`id` int(11) NOT NULL auto_increment,
`product_id` int(11) NOT NULL,
`shipping_cost` decimal(15,2) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `id` (`id`)
)");
上面的查询成功创建运输 table 但这不是我需要的,我如何创建 shipping_cost 列具有 geozone id 的 id?
示例:shipping_cost_1、shipping_cost_2 和 shipping_cost_3
听起来运费取决于产品及其发送到的地理区域,这意味着需要将 geozone_id
列添加到您的 shipping_cost
table。还要在 (geozone_id,product_id)
上添加一个唯一约束,因为每对唯一的一对应该只有一个运费。
CREATE TABLE shipping (
`id` int(11) NOT NULL auto_increment,
`geozone_id` int(11) NOT NULL, -- specify which geozone this cost is for
`product_id` int(11) NOT NULL,
`shipping_cost` decimal(15,2) NOT NULL,
PRIMARY KEY (`id`),
-- UNIQUE KEY `id` (`id`), -- Not necessary because Primary keys are already unique
UNIQUE KEY `product_id_geozone_id` (`product_id`,`geozone_id`) -- each product, geozone can only have 1 cost
)
然后您可以 select 每个 product/geozone 对的成本与连接:
select geozone.name, product.name,
shipping.shipping_cost
from products
join shipping on shipping.product_id = product.id
join geozone on shipping.geozone_id = geozone.id
是否可以根据另一个 table 列值创建 table 列? 现有的 table(geozone) 看起来像这样并且它不是固定的(可以包含更多 ID 和名称)
id | name
1 | UK
2 | CANADA
3 | JAPAN
我正在尝试从 php 页面创建一个新页面
mysql_query("CREATE TABLE shipping (
`id` int(11) NOT NULL auto_increment,
`product_id` int(11) NOT NULL,
`shipping_cost` decimal(15,2) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `id` (`id`)
)");
上面的查询成功创建运输 table 但这不是我需要的,我如何创建 shipping_cost 列具有 geozone id 的 id?
示例:shipping_cost_1、shipping_cost_2 和 shipping_cost_3
听起来运费取决于产品及其发送到的地理区域,这意味着需要将 geozone_id
列添加到您的 shipping_cost
table。还要在 (geozone_id,product_id)
上添加一个唯一约束,因为每对唯一的一对应该只有一个运费。
CREATE TABLE shipping (
`id` int(11) NOT NULL auto_increment,
`geozone_id` int(11) NOT NULL, -- specify which geozone this cost is for
`product_id` int(11) NOT NULL,
`shipping_cost` decimal(15,2) NOT NULL,
PRIMARY KEY (`id`),
-- UNIQUE KEY `id` (`id`), -- Not necessary because Primary keys are already unique
UNIQUE KEY `product_id_geozone_id` (`product_id`,`geozone_id`) -- each product, geozone can only have 1 cost
)
然后您可以 select 每个 product/geozone 对的成本与连接:
select geozone.name, product.name,
shipping.shipping_cost
from products
join shipping on shipping.product_id = product.id
join geozone on shipping.geozone_id = geozone.id