将一个值插入到 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 中的 运行 示例。