2015-08-17 40 views
0

取数据与加入最后插入记录从左表基于公司ID和所有记录从右表无所谓它有任何在左表中匹配记录。左加入最后一个插入记录从左表和所有记录表格右表

**company_list** 
id 
company_id 
company_name 
company_address1 
company_address2 
company_phone 
company_headoffice 
active 

**company_subscription_list** table field name is 
id 
company_id 
company_name 
company_address1 
company_address2 
company_phone 
company_headoffice 
active 

,我使用这个查询fecth记录

SELECT *, c.id AS main_id 
FROM company_list as c 
LEFT JOIN company_subscription_list as s ON c.company_id = s.company_id 
where s.id IN (select max(id) from company_subscription_list GROUP BY company_id) 

但这些公司谁还不认购其没有显示结果。

需要帮助。

+0

改变'where'到'和'可以帮助,但如果你喜欢,可以考虑以下这个简单的两步过程行动:1.如果您还没有这样做,请提供适当的DDL(和/或sqlfiddle),以便我们可以更轻松地复制问题。 2.如果您尚未这样做,请提供与步骤1中提供的信息相符的所需结果集。 – Strawberry

+0

第4行看起来很乱 – Drew

+0

http://sqlfiddle.com/#!9/d1150/1/0 @草莓 我想所有记录表格我的company_list表 –

回答

1

你必须把你的条件在你的连接条件。这样做,你不会失去行:

SELECT *, c.id AS main_id 
FROM company_list as c 
LEFT JOIN company_subscription_list as s 
    ON c.company_id = s.company_id 
    AND s.id IN (select max(id) from company_subscription_list GROUP BY company_id) 

尝试此链接:http://sqlfiddle.com/#!9/5db87/4

+0

非常感谢@coytech –

相关问题