2014-01-06 39 views
1

我有3個表MySQL的插入值,並且一些從其他表

  • 作品(ID,姓名,date_started,date_finished,TYPE_ID,employer_id)
  • 類型(ID,類型)
  • 被選擇僱主(編號,名稱,姓氏,公司)

我想在插入到工作表中的記錄插入到列:名稱,日期(手工),然後還到type_id和employer_id列(選擇id從其他表中s)

我知道你可以插入然後使用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

你可以有子查詢裏面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) 
) 
相關問題