我有一个包含9个表的MySQL数据库,每个表都有一个带主键设置和自动增量的ID以及一行数据,一个表让我们称之为“X' X'从这个数据库还有一个主键和一行数据和其他表中的所有主键作为外键,问题是我可以插入' X'表不是由其他表的id但是由数据行,例如一些其他表有id - > 3和数据:苹果,我可以插入' apple'需要id 3,而不是从数据行获取苹果的id 3?
答案 0 :(得分:1)
您可以在一个步骤中选择和插入值:
INSERT INTO X (fruit_id, ...)
VALUES ((SELECT fruit_id FROM fruits WHERE fruit = 'apple'), ...);
这将插入apple的 fruit_id 。
根据i486s评论,您还可以直接插入选择结果:
INSERT INTO X (fruit_id, tableb_id, tablec_id, datafiled)
SELECT fruit_id, b.tableb_id, c.tablec_id, 'some data'
FROM fruits a, tableb b, tablec c
WHERE a.fruit = 'apple',
AND b.tableb_data = 'some data from tableb'
AND c.tablec_data = 'some data from tablec';
答案 1 :(得分:0)
不,mysql不是ms访问你可以做到这一点。您可以在mysql中实现导入功能,甚至可以在另一种编程语言中使用GUI,通过在另一个表中查找,将值“apple”转换为3的外键。这正是ms访问在后台为你做的。