Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Вопрос по INNER JOIN / 9 сообщений из 9, страница 1 из 1
31.01.2018, 10:56
    #39593771
Areostar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по INNER JOIN
Имеется две таблицы:

Код: sql
1.
2.
3.
4.
5.
6.
CREATE TABLE `keys` (
  `id` int(11) NOT NULL,
  `person_id` int(11) NOT NULL,
  `date_creation` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `key_value` varchar(32) COLLATE utf8_unicode_ci NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;



Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
CREATE TABLE `persons` (
  `id` int(11) NOT NULL,
  `first_name` varchar(25) COLLATE utf8_unicode_ci NOT NULL,
  `last_name` varchar(25) COLLATE utf8_unicode_ci NOT NULL,
  `date_registration` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `city` varchar(20) COLLATE utf8_unicode_ci NOT NULL,
  `status` tinyint(1) NOT NULL DEFAULT '1'
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;



пишу запрос

Код: sql
1.
"SELECT `persons`.`id`, `persons`.`first_name`, `persons`.`last_name` FROM `persons` WHERE `id` NOT IN(SELECT `person_id` FROM `keys`)"



работает

меняю так

Код: sql
1.
"SELECT `persons`.`id`, `persons`.`first_name`, `persons`.`last_name`, `keys`.`key_value` FROM `persons` WHERE `id` NOT IN(SELECT `person_id` FROM `keys`) INNER JOIN `keys` ON `persons`.`id` = `keys`.`person_id`"



Получаю пустой ответ!

В чём ошибка?
...
Рейтинг: 0 / 0
31.01.2018, 11:14
    #39593781
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по INNER JOIN
Получить записи из persons, ID которых отсутствует в keys, но присутствует в keys... ты себя хорошо чувствуешь?
...
Рейтинг: 0 / 0
31.01.2018, 11:18
    #39593786
Areostar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по INNER JOIN
Akina,

исправил, убрал слово NOT

Результат тот же!
...
Рейтинг: 0 / 0
31.01.2018, 11:21
    #39593788
Areostar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по INNER JOIN
Попробывал так
Код: sql
1.
SELECT `persons`.`id`, `persons`.`first_name`, `persons`.`last_name`, `keys`.`key_value` FROM `persons` WHERE `id` IN(SELECT `person_id` FROM `keys`) INNER JOIN `keys` ON `keys`.`person_id` = `persons`.`id`



но ответ пустой
...
Рейтинг: 0 / 0
31.01.2018, 11:50
    #39593816
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по INNER JOIN
Areostarответ пустойВрёшь.
Гарантированный ERROR 1064 . Потому что WHERE идёт ПОСЛЕ JOIN, а не перед ним.
Если расположить секции в правильном порядке - получишь набор записей.
И если выбросишь WHERE - получишь тот же набор записей.
...
Рейтинг: 0 / 0
31.01.2018, 11:50
    #39593817
Areostar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по INNER JOIN
убрал подзапрос. Теперь работает! Ошибку понял!
...
Рейтинг: 0 / 0
31.01.2018, 12:57
    #39593881
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по INNER JOIN
Areostar
Код: sql
1.
"SELECT `persons`.`id`, `persons`.`first_name`, `persons`.`last_name`, `keys`.`key_value` FROM `persons` WHERE `id` NOT IN(SELECT `person_id` FROM `keys`) INNER JOIN `keys` ON `persons`.`id` = `keys`.`person_id`"



Получаю пустой ответ!

В чём ошибка?


Код: sql
1.
2.
3.
4.
"SELECT `persons`.`id`, `persons`.`first_name`, `persons`.`last_name`, `keys`.`key_value` 
FROM `persons` 
WHERE `id` NOT IN(SELECT `person_id` FROM `keys`) 
LEFT JOIN `keys` ON `persons`.`id` = `keys`.`person_id`"
...
Рейтинг: 0 / 0
31.01.2018, 13:23
    #39593904
Areostar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по INNER JOIN
MasterZiv,

Не работает такой запрос. подзапрос надо убрать.
...
Рейтинг: 0 / 0
31.01.2018, 15:16
    #39594071
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по INNER JOIN
AreostarНе работает такой запрос.Восприми его сообщение как образец ФОРМАТИРОВАНИЯ кода в своих сообщениях, чтобы люди не ломали глаза.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Вопрос по INNER JOIN / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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