powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Вопрос по INNER JOIN
9 сообщений из 9, страница 1 из 1
Вопрос по INNER JOIN
    #39593771
Фотография Areostar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Имеется две таблицы:

Код: 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
Вопрос по INNER JOIN
    #39593781
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Получить записи из persons, ID которых отсутствует в keys, но присутствует в keys... ты себя хорошо чувствуешь?
...
Рейтинг: 0 / 0
Вопрос по INNER JOIN
    #39593786
Фотография Areostar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akina,

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

Результат тот же!
...
Рейтинг: 0 / 0
Вопрос по INNER JOIN
    #39593788
Фотография Areostar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробывал так
Код: 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
Вопрос по INNER JOIN
    #39593816
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Areostarответ пустойВрёшь.
Гарантированный ERROR 1064 . Потому что WHERE идёт ПОСЛЕ JOIN, а не перед ним.
Если расположить секции в правильном порядке - получишь набор записей.
И если выбросишь WHERE - получишь тот же набор записей.
...
Рейтинг: 0 / 0
Вопрос по INNER JOIN
    #39593817
Фотография Areostar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
убрал подзапрос. Теперь работает! Ошибку понял!
...
Рейтинг: 0 / 0
Вопрос по INNER JOIN
    #39593881
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Вопрос по INNER JOIN
    #39593904
Фотография Areostar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv,

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


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