SQL插入从多个字段中选择

时间:2014-03-06 20:43:54

标签: php mysql

我有一个'用户'表,其中包含'ID'列。我想根据2个不同的参数选择2个不同的“ID”,并将它们插入另一个称为“作业”的表中。

INSERT INTO jobs (customer_id, client_id) 
SELECT id, id from users 
WHERE username = ? 
AND username = ?

基本上我想获得两个不同人的ID并将它们都插入到新表中。

然后我将参数绑定到?,它们看起来像'john'和'steve'。我已经尝试过上面的代码,但我知道这是错误的语法。任何想法将不胜感激。感谢

2 个答案:

答案 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中返回一个字段和一行。