将一个值插入到 table 中,所有值都来自另一个 table
Insert one value into a table with all values from another table
INSERT INTO inventory (film_id, store_id)
VALUES ((SELECT film_id FROM film WHERE title='EUCLIDEAN PI'), (SELECT store_id from store));
这行不通。返回的错误是“用作表达式的子查询返回多于一行”。
基本上,我的存货清单应该为每家商店都提供这部特定影片的副本。如果 ECULIDEAN PI 的 ID 是 347。库存 table 商店 table.
中的每个 store_id 应该显示 347 的副本
film_id store_id
347 1
347 2
347 3
347 n
其中 n 是最后一个 store_id。 Store_id 可能并不总是增量的。
你没有提到你使用的是哪个特定的数据库,它们之间的语法有点不同。
我假设它用于 SQL 服务器。如果是这样,你可以这样做:
insert into inventory (film_id, store_id)
select
(select film_id from film where title = 'EUCLIDEAN PI'),
store_id
from store;
结果:
film_id store_id
-------- --------
347 1
347 2
347 3
347 7
347 10
请参阅 db<>fiddle 中的 运行 示例。
INSERT INTO inventory (film_id, store_id)
VALUES ((SELECT film_id FROM film WHERE title='EUCLIDEAN PI'), (SELECT store_id from store));
这行不通。返回的错误是“用作表达式的子查询返回多于一行”。
基本上,我的存货清单应该为每家商店都提供这部特定影片的副本。如果 ECULIDEAN PI 的 ID 是 347。库存 table 商店 table.
中的每个 store_id 应该显示 347 的副本film_id store_id
347 1
347 2
347 3
347 n
其中 n 是最后一个 store_id。 Store_id 可能并不总是增量的。
你没有提到你使用的是哪个特定的数据库,它们之间的语法有点不同。
我假设它用于 SQL 服务器。如果是这样,你可以这样做:
insert into inventory (film_id, store_id)
select
(select film_id from film where title = 'EUCLIDEAN PI'),
store_id
from store;
结果:
film_id store_id
-------- --------
347 1
347 2
347 3
347 7
347 10
请参阅 db<>fiddle 中的 运行 示例。