|
|
|
| Пытался вывести все записи с таблиц rubrics и modules, где rubrics.module = modules.id
ну как бы все стандартно вроде бы...
Раньше выводил связывал все простым WHERE.. теперь услышал от умных людей, что это работает только на базах с маленьким количеством записей (кстати это правда?)
Переделал...
SELECT *
FROM dc_rubrics
JOIN dc_modules ON dc_rubrics.module = dc_modules.id
|
MySQL пишет, что в sql-запросе ошибка... как раз около ON
Вроде бы все делал по примеру.. а в итоге все равно одна фигня((
Да и вдогон еще один вопрос - если бы я вместо JOIN поставил LEFT JOIN, то как я понял будут выведены вобще все записи с обеих таблиц? или как?
И зачем используется RIGHT JOIN? в мануале сказано только про оптимизацию JOIN-запросов и ни слова про сами запросы(( | |
|
|
|
|
|
|
|
для: 1999
(30.06.2007 в 16:35)
| | Сложно правильно составить запрос, не зная имен полей и их типов.
В Вашем примере почти всё корректно.
Нельзя писать голую звездочку, если в запросе больше одной таблицы.
SELECT dc_rubrics.*,dc_modules.*
FROM dc_rubrics
JOIN dc_modules ON dc_rubrics.module = dc_modules.id
|
RIGHT JOIN - внешнее правостороннее соединение.
Используется крайне редко, потому что человек обычно строит рассуждение от известного (таблица с первичными ключами) к неизвестному (таблица с выбираемыми атрибутами) а не наоборот. | |
|
|
|