2008-11-25 75 views
3

我需要修改以下MySQL语句以包含来自第三个表的信息......但我吸收连接。MySQL多表加入

select 
    ss.*, 
    se.name as engine, 
    ss.last_run_at + interval ss.refresh_frequency day as next_run_at, 
    se.logo_name  
from 
    searches ss join search_engines se on ss.engine_id = se.id 
where 
    ss.user_id='.$user_id.' 
group by ss.id 
order by ss.project_id, ss.domain, ss.keywords 

我需要还包括通过匹配searches.project_idprojects.id检索projects.project_name

+0

......怎么样?如果这是你的生产代码,你自己打开SQL注入攻击。 – Salamander2007 2008-11-25 02:27:52

+0

请你详细说明一下吗? – Ian 2008-11-25 02:39:43

回答

6

退房SELECT SyntaxJOIN Syntax

不过,最简单的答案 - 添加另一个JOIN..ON声明。

select 
     ss.*, 
     se.name as engine, 
     ss.last_run_at + interval ss.refresh_frequency day as next_run_at, 
     se.logo_name, 
     pr.project_name -- + 
from 
     searches ss 
     join search_engines se on ss.engine_id = se.id 
     join projects pr on ss.project_id = pr.id -- + 
where 
     ss.user_id='.$user_id.' 
group by ss.id 
order by ss.project_id, ss.domain, ss.keywords 

[编辑]我加了-- +意见指出我的补充。