2014-04-01 32 views
1

我想创建一个查询与来自其他表,例如值一起插入几个值:如何使用多值和SELECT语句插入?

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内部服务器错误。请帮助。

回答

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' 

应该这样做,我认为......

+0

作品唯一的问题是日期没有被插入,任何想法? – polymorph

+0

尝试在php中将它的日期格式发送到mysql之前... –

+0

会不会,谢谢。我会投你一票,但没有足够的分数。 – polymorph

0

我敢肯定你需要VALUESSELECT如果你正在做这种方式。试试这个,看看它是否有效。

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' 
相关问题