MySQL多表连接

3

我需要修改下面的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


什么?如果这是你的生产代码,你就会面临 SQL 注入攻击的风险。 - Salamander2007
我认为Robert Wagner对你相关问题(这个MySQL查询如何容易受到SQL注入攻击?)的回答已经很好地概括了我的意图。这种模式会增加SQL注入的可能性,而其他模式则使其不可能。 - Salamander2007
1个回答

6

请查看SELECT语法JOIN语法

但是,最简单的答案是--添加另一个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

[编辑] 我添加了-- +的注释以指出我的添加内容。

那里的加号和减号是在做什么? - Salamander2007

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接