2014-03-25 23 views
0

我有一个表命名为“报价”,它具有以下字段..我的SQL加入超过5桌

category_id 
subcategory_id 
country_id 
region_id 
rural_id 
notes 
sender_uid 
receiver_uid 
created_timestamp 
is_quote_active 

我也有“类别”,“子类别”,“全国”,“区域” ,'农村'和'用户'表。 我需要一个SQL查询以检索数据如下..

category_name (from 'category' table) 
subcategory_name (from 'subcategory' table) 
country_name (from 'country' table) 
region_name (from 'region' table) 
rural_name (from 'rural' table) 
notes 
sender_name (from 'user' table) 
receiver_name (from 'user' table) 
created_timestamp 
is_quote_active 

其实我需要的名称,而不是标识。 我在寻找最effecient方式..

感谢

+0

那么问题是什么?超过5个表格与2个表格完全相同。 – zerkms

回答

1

试试这个,

SELECT quote.quote_id, quote.notes, quote.is_quote_active, quote.created_timestamp, category.category_name, subcategory.subcategory_name, rural.rural_name, region.region_name, country.country_name, s.name AS sname, r.name AS rname 
    FROM quote 
     LEFT JOIN category ON quote.category_id = category.category_id 
    LEFT JOIN subcategory ON quote.subcategory_id = subcategory.subcategory_id 
    LEFT JOIN country ON quote.country_id = country.country_id 
    LEFT JOIN region ON quote.region_id = region.region_id 
    LEFT JOIN rural ON quote.rural_id = rural.rural_id 
    LEFT JOIN user s ON quote.sender_uid = s.uid 
    LEFT JOIN user r ON quote.receiver_uid = r.uid 
2

你需要加入所有这些表

例如,

SELECT CN.category_name ,SC.subcategory_name ,CO.country_name ,R.region_name ,RE.region_name ,U.sender_name ,U.receiver_name 
From category Left JOIN subcategory ON ... 
       Left JOIN country ON.. 
       Left JOIN region ON.. 
       Left JOIN rural ON.. 
       Left JOIN User ON.. 
Where 'Your condition here'