MySQL插入值,并从其他表中选择一些值
我有三张桌子MySQL插入值,并从其他表中选择一些值,mysql,sql,Mysql,Sql,我有三张桌子 工程(id、名称、开工日期、完工日期、类型id、雇主id) 类型(id、类型) 雇主(id、姓名、姓氏、公司) 在一个查询中将记录插入works表时,我希望插入到列中:name、date(手动),然后也插入type_id和employer_id列(从其他表中选择id) 我知道您可以先插入,然后使用select,但是如何添加其他需要手动键入的值,因为它们不存在于其他表中?您可以直接将额外的值放入select子句中: INSERT INTO works (name, date_st
- 工程(id、名称、开工日期、完工日期、类型id、雇主id)
- 类型(id、类型)
- 雇主(id、姓名、姓氏、公司)
我知道您可以先插入,然后使用select,但是如何添加其他需要手动键入的值,因为它们不存在于其他表中?您可以直接将额外的值放入
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 ...
您可以直接将额外的值放入
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 ...
如果子查询只返回一个值,则可以在
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)
)
如果子查询只返回一个值,则可以在
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)
)
示例记录是?示例记录是?