Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / JOIN 2-ух таблиц / 4 сообщений из 4, страница 1 из 1
13.12.2018, 10:03
    #39747146
Валерий666
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JOIN 2-ух таблиц
Есть 2 таблицы, нужно взять из первой ВСЕ записи, а вторую соединить по id.

Делаю запрос:
Код: sql
1.
2.
3.
4.
SELECT * FROM register 
LEFT JOIN execute using (docid)  
WHERE (execute.exenum=1)  
ORDER BY register.docid DESC



В чем проблема? Почему возвращаются только те записи, из первой таблицы, которым есть соответствующая запись во второй? Как вывести все записи из первой?

Вот такой запрос работает:
Код: sql
1.
2.
3.
SELECT * FROM register
 LEFT JOIN execute using (docid)  
  GROUP BY docid



Но как быть уверенным, что из второй таблицы он будет подхватывать именно первую запись с id=1 (execute.exenum=1)?
...
Рейтинг: 0 / 0
13.12.2018, 10:55
    #39747184
paver
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JOIN 2-ух таблиц
Валерий666,
переместить условие из WHERE в LEFT JOIN ... ON
...
Рейтинг: 0 / 0
13.12.2018, 11:27
    #39747223
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JOIN 2-ух таблиц
Валерий666В чем проблема?Проблема вот в чём. Если в execute нет соответствующей записи, то все поля от неё будут NULL. А потом ты их проверяешь на равенство единице - само собой все NULL значения этой проверки не проходят.

Условие надо переместить в секцию ON:

Код: sql
1.
2.
3.
4.
5.
SELECT * 
FROM register 
LEFT JOIN execute ON register.docid = execute.docid
                 AND execute.exenum=1
ORDER BY register.docid DESC



Тогда отбор по этому условию будет выполнен при связывании (для понимания проще считать, что перед связыванием), а не после него.
...
Рейтинг: 0 / 0
13.12.2018, 11:55
    #39747263
Валерий666
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JOIN 2-ух таблиц
Благодарю!
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / JOIN 2-ух таблиц / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]