2011-08-11 35 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