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 должны идти критерии отбора а не связывания)
был такой селект:
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 должны идти критерии отбора а не связывания)