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。對于 store 表中的每個 store_id,庫存表應該顯示 347 的副本。
film_id store_id
347 1
347 2
347 3
347 n
其中 n 是最后一個 store_id。Store_id 可能并不總是增量的。
uj5u.com熱心網友回復:
您沒有提到您使用的是哪個特定資料庫,并且它們之間的語法略有不同。
我假設它用于 SQL Server。如果是這種情況,您可以這樣做:
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 上的運行示例。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/321590.html
標籤:sql PostgreSQL sql 插入
