Ian
Ian

Reputation: 12251

MySQL Multi-Table Join

I need to modify the following MySQL statement to include information from a third table... but I suck at joins.

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

I need to also include retrieving projects.project_name by matching searches.project_id to projects.id.

Upvotes: 3

Views: 4413

Answers (1)

Jonathan Lonowski
Jonathan Lonowski

Reputation: 123563

Check out SELECT Syntax and JOIN Syntax.

But, simplest answer -- add another JOIN..ON statement.

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

[EDIT] I added the -- + comments to point out my additions.

Upvotes: 6

Related Questions