我正在嘗試使用帶有子查詢的 postgreSQL INSERT 查詢作為引數值。這是首先從 user_info 表中的隨附 auth_token 中找到相應的 user_id,然后在具有相應 user_id 的不同表中創建一個新條目。
我的查詢看起來像這樣
INSERT INTO user_movies(user_id, date, time, movie, rating)
VALUES ((SELECT user_id FROM user_info where auth_token = $1),$2,$3,$4,$5)
RETURNING *
我知道這樣的查詢將使用單個值
INSERT INTO user_movies(user_id)
SELECT user_id FROM user_info where auth_token = $1
RETURNING *
但是我如何允許多個輸入值。這在postgreSQL中是否可行。
我也使用 nodejs 來運行這個查詢 - >因此 $ 作為占位符。
uj5u.com熱心網友回復:
擴展我的評論(這可能是一個解決方案,IIUC):在這種情況下,最簡單的方法是讓內部查詢回傳所有值。因此,假設內部查詢中的列具有正確的名稱,您可以
INSERT INTO user_movies(user_id, date, time, movie, rating)
(SELECT user_id,$2,$3,$4,$5 FROM user_info where auth_token = $1)
RETURNING *
請注意,此表單也沒有 VALUES,而是使用查詢。
uj5u.com熱心網友回復:
你可以嘗試使用 where IN 子句
INSERT INTO user_movies(user_id)
SELECT user_id
FROM user_info
WHERE auth_token IN ($1,$2,$3,$4,$5)
RETURNING *
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/461877.html
標籤:sql 节点.js PostgreSQL
