powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Как избавиться от дублирования записей
2 сообщений из 2, страница 1 из 1
Как избавиться от дублирования записей
    #38820082
vipTelnet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет
Есть такие вот 2 таблички
1 users_message
http://6.firepic.org/6/images/2014-11/28/jqfwbeml9nb7.jpg
2 users_casting
http://6.firepic.org/6/images/2014-11/28/arb03obpsmny.jpg

Я пытаюсь получить все записи из таблицы users_casting для конкретного пользователя +поле state из users_message это типо прочел этот пользователь это сообщение или нет, пытался по разному и через left join
Код: sql
1.
SELECT casting.*,message.state FROM `unw9o_users_casting` AS casting LEFT JOIN `unw9o_users_message` as message ON (message.casting_id = casting.id) WHERE casting.date > NOW() AND `casting`.`id` IN (SELECT casting_id FROM `unw9o_users_message` WHERE `user_id` =65)


и просто через запрос к нескольким таблицам
Код: sql
1.
2.
SELECT DISTINCT casting.*,message.state FROM `unw9o_users_casting` AS casting,`unw9o_users_message` as message
 WHERE casting.date > NOW() AND `casting`.`id` IN (SELECT casting_id FROM `unw9o_users_message` WHERE `user_id` =65) AND (message.casting_id = casting.id)



Результат всегда один и тоже
http://6.firepic.org/6/images/2014-11/28/it0yqsc49z0u.jpg
т.е он не совсем верный откуда то берется первая запись где state 0 и casting_id = 8 дублируется
Прошу помочь мне с этим разобраться.
...
Рейтинг: 0 / 0
Как избавиться от дублирования записей
    #38820177
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vipTelnetпытался по разному и через left join
Код: sql
1.
2.
3.
4.
5.
SELECT casting.*,message.state 
FROM `unw9o_users_casting` AS casting 
LEFT JOIN `unw9o_users_message` as message ON (message.casting_id = casting.id) 
WHERE casting.date > NOW() 
 AND `casting`.`id` IN (SELECT casting_id FROM `unw9o_users_message` WHERE `user_id` =65)

а зачем тут лефт джойн, если фактически присутствует фильтр на правую таблицу?

Код: sql
1.
2.
3.
4.
5.
SELECT casting.*,message.state 
FROM `unw9o_users_casting` AS casting 
JOIN `unw9o_users_message` as message ON message.casting_id = casting.id
WHERE casting.date > NOW() 
 AND message.user_id =65

, и всё

vipTelnetоткуда то берется первая запись где state 0 и casting_id = 8 дублируетсяона не "дублируется"
смотрите внимательно в исходные дынные, у вас 3 записи с юзером 65 - третья, седьмая и девятая

...хотя какое это имеет значение, если результат вы показываете от другого запроса? в первой строке результата дынные вообще какие-то левые.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Как избавиться от дублирования записей
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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