powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Проблемы с left join
7 сообщений из 7, страница 1 из 1
Проблемы с left join
    #39627444
Czaa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день. Есть две таблицы: вопросы и ответы.

Таблица вопросов

id | Номер анкеты |Вопрос
474 | 13 |Страна проживания
475 | 13 |Регион проживания
476 | 13 |Город проживания
477 | 13 |Пол
478 | 13 |Возраст
479 | 13 |Место работы
480 | 13 |Место учебы
483 | 13 |question_1
484 | 13 |question_2
485 | 13 |question_3


Таблица ответов

id |user_id | item_id | value |time_modified
230003 | 3317 | 474 | Белоруссия | 1512218489
230004 | 3317 | 475 | Гродно | 1512218489
230005 | 3317 | 476 | Not available | 1512218489
230006 | 3317 | 477 | Not available | 1512218489
230007 | 3317 | 478 | Not available | 1512218489
230008 | 3317 | 479 | Not available | 1512218489
230009 | 3317 | 480 | Not available | 1512218489
230320 | 3317 | 484 | Not available | 1512218489
230398 | 4316 | 474 | Россия | 1523015129
230399 | 4316 | 475 | Алтайский к | 1523015129
230400 | 4316 | 476 | Барнаул | 1523015129
230401 | 4316 | 477 | Россия |1523015129
230402 | 4316 | 478 | Алтайский |1523015129
230403 | 4316 | 479 | Барнаул | 1523015129
230404 | 4316 | 480 | Гимназия |1523015129
230405 | 4316 | 484 | some value |1523015129
230415 | 4316 | 483 | some value_3 | 1523015156

Делаю запрос такого вида
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
SELECT
apply_item.id,
apply_item.`name`,
apply_value.`value`,
apply_item.apply_id,
apply_value.user_id
FROM
apply_item
left JOIN apply_value ON apply_item.id = apply_value.item_id 
ORDER BY apply_id

,
чтобы узнать на какие вопросы пользователь не ответил. Но почему-то у меня берутся не все значения из таблицы вопросов.

Далее я решил полностью удалить ответы всех пользователей кроме одного и тогда все заработало, как надо. Подскажите, пожалуйста, с чем это может быть связано.
...
Рейтинг: 0 / 0
Проблемы с left join
    #39627450
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CzaaТаблица вопросов
...
Таблица ответов
Czaaapply_item
left JOIN apply_value[/SRC]
Ты бы как-нибудь эта... сам же придерживался собственной терминологии, что ли...

Czaaузнать на какие вопросы пользователь не ответилВ упор не вижу WHERE что-то IS NULL
...
Рейтинг: 0 / 0
Проблемы с left join
    #39627461
Czaa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Извиняюсь, что попутал с терминологией. Вот так правильно

Таблица вопросов (apply_item)

id | aplly_id |name
474 | 13 |Страна проживания
475 | 13 |Регион проживания
476 | 13 |Город проживания
477 | 13 |Пол
478 | 13 |Возраст
479 | 13 |Место работы
480 | 13 |Место учебы
483 | 13 |question_1
484 | 13 |question_2
485 | 13 |question_3


Таблица ответов (apply_value)

id |user_id | item_id | value |time_modified
230003 | 3317 | 474 | Белоруссия | 1512218489
230004 | 3317 | 475 | Гродно | 1512218489
230005 | 3317 | 476 | Not available | 1512218489
230006 | 3317 | 477 | Not available | 1512218489
230007 | 3317 | 478 | Not available | 1512218489
230008 | 3317 | 479 | Not available | 1512218489
230009 | 3317 | 480 | Not available | 1512218489
230320 | 3317 | 484 | Not available | 1512218489
230398 | 4316 | 474 | Россия | 1523015129
230399 | 4316 | 475 | Алтайский к | 1523015129
230400 | 4316 | 476 | Барнаул | 1523015129
230401 | 4316 | 477 | Россия |1523015129
230402 | 4316 | 478 | Алтайский |1523015129
230403 | 4316 | 479 | Барнаул | 1523015129
230404 | 4316 | 480 | Гимназия |1523015129
230405 | 4316 | 484 | some value |1523015129
230415 | 4316 | 483 | some value_3 | 1523015156


По идее, после запроса должна получиться выборка, содержащая такую строку, поскольку пользователь с user_id 3317 не ответил на вопрос с id 483

.....
id name apply_id user_id
483 question_3 Null 3317
......

Но почему-то не выходит.
...
Рейтинг: 0 / 0
Проблемы с left join
    #39627467
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Должно быть
Код: sql
1.
2.
3.
4.
5.
6.
SELECT /*  юзер  */ apply_value.user_id
     , /* вопрос */ apply_item.name
FROM apply_item
LEFT JOIN apply_value ON apply_item.id = apply_value.item_id 
WHERE apply_value.item_id IS NULL
ORDER BY 1,2
...
Рейтинг: 0 / 0
Проблемы с left join
    #39627473
Czaa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AkinaДолжно быть
Код: sql
1.
2.
3.
4.
5.
6.
SELECT /*  юзер  */ apply_value.user_id
     , /* вопрос */ apply_item.name
FROM apply_item
LEFT JOIN apply_value ON apply_item.id = apply_value.item_id 
WHERE apply_value.item_id IS NULL
ORDER BY 1,2



Попробовал этот вариант.

В итоге выдал вот что:

user_id | name

null | null
...
Рейтинг: 0 / 0
Проблемы с left join
    #39627486
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блин, у тебя ж там ещё и юзеры разные... тогда

Код: sql
1.
2.
3.
4.
5.
6.
SELECT avi.user_id, avi.name
FROM (SELECT DISTINCT av.user_id, ai.id, ai.name
      FROM apply_value av, apply_item ai
     ) avi
LEFT JOIN apply_value a_v ON (avi.user_id = a_v.user_id AND avi.id = a_v.item_id)
WHERE a_v.user_id IS NULL;
...
Рейтинг: 0 / 0
Проблемы с left join
    #39627493
Czaa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Большое спасибо! Получилось.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Проблемы с left join
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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