правильно составить join

Frutik

1024-й
правильно составить join

был такой селект:
select b1.id, b1.val as pname, b2.val as sname from resumes b1 inner join resumes b2 on (b1.id = b2.id) where b1.field = 1 and b2.field = 2 order by pname asc, sname asc;

потом возникла необходимость расширить его так:

select b1.id, b1.val as pname, b2.val as sname, a39.val, a8.val from resumes b1 inner join resumes b2 on (b1.id = b2.id) left outer join resumes a39 on (b1.id = a39.id and a39.field=39) left outer join resumes a8 on (b1.id = a8.id and a8.field=8) where b1.field = 1 and b2.field = 2 order by pname asc, sname asc;

после такого расширения возник вопрос правилен ли селект номер 1, может правильнее так:

select b1.id, b1.val as pname, b2.val as sname from resumes b1 inner join resumes b2 on (b1.id = b2.id and b1.filed=1 and b2.field=2) order by pname asc, sname asc;

или это все из области вопросов религии? (имеюю ввиду то, что теоретически во where должны идти критерии отбора а не связывания)
 

Frutik

1024-й
ну... как говорят америкосы - "хелп ю селф"

третий запрос оказался и синтаксически и логически правильным
 
Сверху