【问题标题】:MySQL Multiple Insert and JoinMySQL 多重插入和连接
【发布时间】:2011-08-11 01:03:36
【问题描述】:
我有一个名为 media_files 的表,其中包含以下列:
id
listing_id
file_id
我有另一个 accounts 表,其中包含列:
id
group_id
我的 media_files 表目前每个 group_id 有 1 个列表(取自关联的 accounts 表)。 Accounts 表将所有帐户分组到 group_id。
我想在 media_files 表中为帐户表中的每一行创建一个列表。 listing_id 必须取自accounts 表,file_id 必须与所有匹配group_id 的行相同。
我知道我必须使用临时表和/或连接,但我不知道如何完成。
非常感谢任何帮助。感谢阅读。
【问题讨论】:
标签:
mysql
select
join
insert
【解决方案1】:
稍后一次插入,两次选择和两次连接,我明白了。
INSERT INTO media_files (app_id, listing_id, fid)
SELECT mymaster.app_id, mymaster.rlisting_id, mymaster.fid
from (
SELECT ch.id AS rlisting_id, cb.* from accounts ch INNER JOIN (
SELECT ca.group_id, mf.* FROM accounts ca INNER JOIN media_files mf ON mf.listing_id = ca.id WHERE mf.app_id=1085
) cb ON ch.group_id = cb.group_id
) mymaster