我有一个'用户'表,其中包含'ID'列。我想根据2个不同的参数选择2个不同的“ID”,并将它们插入另一个称为“作业”的表中。
INSERT INTO jobs (customer_id, client_id)
SELECT id, id from users
WHERE username = ?
AND username = ?
基本上我想获得两个不同人的ID并将它们都插入到新表中。
然后我将参数绑定到?,它们看起来像'john'和'steve'。我已经尝试过上面的代码,但我知道这是错误的语法。任何想法将不胜感激。感谢
答案 0 :(得分:2)
您可以使用自我加入:
INSERT INTO jobs
(customer_id, client_id)
SELECT customer.id, client.id
FROM users customer
JOIN users client ON customer.username = ? AND client.username = ?
或者,您可以使用子查询:
INSERT INTO jobs
(customer_id, client_id)
VALUES (
(SELECT id FROM users WHERE username = ?),
(SELECT id FROM users WHERE username = ?)
)
答案 1 :(得分:0)
好吧,你可以使用subquerys
INSERT INTO jobs (customer_id, client_id)
VALUES (
(SELECT field from table where id = 2),
(SELECT field from table2 where id = 12)
)
我不太确定sintax,因为我没有测试过,但我猜它可以解决它。
我经常在WHERE或SELECT语句中使用这些东西。只记得在subquerys中返回一个字段和一行。