我有3张桌子
我想在一个查询中插入工作表记录时插入到列中:name,date(手工),然后也是type_id和employer_id列(从其他表中选择id)
我知道你可以插入然后使用select,但是我如何添加其他值,我需要手工输入,因为它们在其他表上不存在?
答案 0 :(得分:3)
您可以直接将额外值放在SELECT
子句中:
INSERT INTO works (name, date_started, type_id, employer_id)
SELECT name, curdate(), type_id, employer_id
FROM types t
JOIN employers e ON ...
WHERE ...
答案 1 :(得分:1)
如果子查询只返回一个值,您可以在VALUES()
子句中包含子查询。
INSERT INTO works (name, date_started, date_finished, type_id, employer_id)
VALUES
(
'name here',
'date started',
'date finished',
(SELECT id FROM types WHERE type = 'val' LIMIT 1),
(SELECT id FROM employers WHERE name = 'val' LIMIT 1)
)