
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
13.12.2018, 10:03
|
|||
|---|---|---|---|
|
|||
JOIN 2-ух таблиц |
|||
|
#18+
Есть 2 таблицы, нужно взять из первой ВСЕ записи, а вторую соединить по id. Делаю запрос: Код: sql 1. 2. 3. 4. В чем проблема? Почему возвращаются только те записи, из первой таблицы, которым есть соответствующая запись во второй? Как вывести все записи из первой? Вот такой запрос работает: Код: sql 1. 2. 3. Но как быть уверенным, что из второй таблицы он будет подхватывать именно первую запись с id=1 (execute.exenum=1)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
13.12.2018, 10:55
|
|||
|---|---|---|---|
|
|||
JOIN 2-ух таблиц |
|||
|
#18+
Валерий666, переместить условие из WHERE в LEFT JOIN ... ON ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
13.12.2018, 11:27
|
|||
|---|---|---|---|
JOIN 2-ух таблиц |
|||
|
#18+
Валерий666В чем проблема?Проблема вот в чём. Если в execute нет соответствующей записи, то все поля от неё будут NULL. А потом ты их проверяешь на равенство единице - само собой все NULL значения этой проверки не проходят. Условие надо переместить в секцию ON: Код: sql 1. 2. 3. 4. 5. Тогда отбор по этому условию будет выполнен при связывании (для понимания проще считать, что перед связыванием), а не после него. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=47&mobile=1&tid=1829420]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
46ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 13ms |
| total: | 152ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...