
Новые сообщения [новые: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&tablet=1&tid=1829420]: |
0ms |
get settings: |
5ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
148ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
23ms |
get tp. blocked users: |
1ms |
| others: | 194ms |
| total: | 391ms |

| 0 / 0 |
