2008-11-25 2 views
3

Мне нужно изменить следующий оператор MySQL, чтобы включить информацию из третьей таблицы ... но я сосать в соединениях.MySQL Multi-Table Join

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 

мне нужно также включать в себя получение projects.project_name путем сопоставления searches.project_id с projects.id.

+0

Что ...? Если это ваш производственный код, вы открываете атаку SQL Injection. – Salamander2007 2008-11-25 02:27:52

+0

не могли бы вы уточнить? – Ian 2008-11-25 02:39:43

ответ

6

Отъезд SELECT Syntax и JOIN 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 

[EDIT] Я добавил -- + комментарии отметить мои дополнения.