2011-08-11 69 views
0

我有一个表称为media_files的列:MySQL的多次插入和加入

id 
listing_id 
file_id 

我有另一个表列:

id 
group_id 

我media_files表目前拥有1个上市per group_id(取自关联的帐户表)。帐户表将所有帐户分组为group_id。

我想在media_files表中为帐户表中的每一行创建一个列表。 listing_id必须取自accounts表,并且对于所有匹配group_id的行,file_id必须相同。

我知道我必须使用临时表和/或连接,但我不知道如何完成此操作。

任何帮助,非常感谢。谢谢阅读。

+0

您需要http://dev.mysql.com/doc/refman/5.0/en/insert-select.html – Stephen

回答

0

以后一个插入,两个选择和两个连接,我知道了。

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