如何使用多个值和SELECT语句插入?

时间:2014-04-01 21:23:25

标签: php mysql sql select insert

我想创建一个查询来插入多个值以及来自其他表的值,例如:

INSERT INTO table
(date, user_id, category_id, title, description)
VALUES
    ((STR_TO_DATE('04-01-2014', '%b-%d-%Y'), 
    (SELECT id FROM users WHERE username = 'admin' LIMIT 1),
    (SELECT id FROM categories WHERE category = 'games' LIMIT 1),
    'title here',
    'description here')

然而,这给了我一个错误,并且从PHP中发现了500个内部服务器错误。请帮助。

2 个答案:

答案 0 :(得分:1)

INSERT INTO table (fields)
SELECT
    str_to_date(),
    users.id,
    categories.id,
    'title',
    'description' 
FROM
    users 
INNER JOIN
    categories ON users.key = categories.key
WHERE
    users.username = 'admin' AND
    categories.category = 'games'
应该这样做我认为......

答案 1 :(得分:0)

如果您这样做,我很确定SELECT之后需要VALUES。试试这个,看它是否有效。

INSERT INTO table
(date, user_id, category_id, title, description)
VALUES
SELECT 
  STR_TO_DATE('04-01-2014', '%b-%d-%Y'), 
  (SELECT id FROM users WHERE username = 'admin' LIMIT 1),
  (SELECT id FROM categories WHERE category = 'games' LIMIT 1),
  'title here',
  'description here'