какой из запросов правельный?

Духовность™

Продвинутый новичок
какой из запросов правельный?

есть 2 таблицы - рубрики и статьи. таблица статьи хранит ид рубрики.

PHP:
SELECT
    articles.*
FROM
    articles
INNER JOIN
    rubrics
ON
    articles.id_rubric = rubrics.id_rubric 
AND
    rubrics.rubric_url = "?"
или

PHP:
SELECT
    articles.*
FROM
    articles
INNER JOIN
    rubrics
ON
    articles.id_rubric = rubrics.id_rubric 
WHERE
    rubrics.rubric_url = "?"
и почему?
 

kvf77

Red Devil
Ну это уже смешно - как мы определим какой запрос правильные не зная чего ты хочешь?
 

Gas

может по одной?
triumvirat
они оба правильные, потому-что эквивалентные. Но имхо более принятый вариант, в ON указывать только условия объединения.

The ON conditional is any conditional expression of the form that can be used in a WHERE clause. Generally, you should use the ON clause for conditions that specify how to join tables, and the WHERE clause to restrict which rows you want in the result set.
http://dev.mysql.com/doc/refman/5.0/en/join.html
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
чет я не вижу разницы.
я креведко?
 

Alexandre

PHPПенсионер
чет я не вижу разницы.
тоже долго искал...[sql]ON
(articles.id_rubric = rubrics.id_rubric AND rubrics.rubric_url = "?")[/sql]
[sql]ON (articles.id_rubric=rubrics.id_rubric )
WHERE rubrics.rubric_url= "?"[/sql]скобки принято ставить.
с WHERE предпочтительней, тк в ON принято ставить условие объединения
 

Духовность™

Продвинутый новичок
в ON принято ставить условие объединения
дошло, спасибо!

скажите, а если написать

[sql]
SELECT
articles.*
FROM
articles
INNER JOIN
rubrics
WHERE
articles.id_rubric = rubrics.id_rubric
AND
rubrics.rubric_url = "?"
[/sql] ведь это тоже будет работать. Что можно сказать об этом запросе?
 

Wicked

Новичок
будет. до тех пор, пока у тебя inner.
но делать так не надо.
 
Сверху