sql результат выбора соединения избыточен - PullRequest
0 голосов
/ 18 апреля 2020

Rated_game_library table

id,bigint(20)

rating,int(11)

created_at,datetime

updated_at,datetime

game_slug,varchar(255)

user_name,varchar(255)

Просмотр таблицы

id,bigint(20)

content,varchar(255)

spoiler,tinyint(4)

heart,bigint(20)

created_at,datetime

updated_at,datetime

user_name,varchar(255)

rated_game_library_game_slug,varchar(255)

Просмотр данных таблицы

1,wc,0,2,2020-04-18 12:04:49,2020-04-18 12:04:49,forcode454,grand-theft-auto-v

4,asd,0,0,2020-04-18 12:40:09,2020-04-18 12:40:09,hide247,grand-theft-auto-v

SQL запрос

SELECT * 
FROM review
JOIN rated_game_library
ON review.rated_game_library_game_slug = rated_game_library.game_slug;

Результат:

1,wc,0,2,2020-04-18 12:04:49,2020-04-18 12:04:49,forcode454,grand-theft-auto-v,1,5,2020-04-1812:04:45,2020-04-18 12:04:45,grand-theft-auto-v,forcode454

4,asd,0,0,2020-04-18 12:40:09,2020-04-18 12:40:09,hide247,grand-theft-auto-v,1,5,2020-04-18 12:04:45,2020-04-18 12:04:45,grand-theft-auto-v,forcode454

1,wc,0,2,2020-04-18 12:04:49,2020-04-18 12:04:49,forcode454,grand-theft-auto-v,5,4,2020-04-18 12:20:59,2020-04-18 12:20:59,grand-theft-auto-v,hide247

4,asd,0,0,2020-04-18 12:40:09,2020-04-18 12:40:09,hide247,grand-theft-auto-v,5,4,2020-04-18 12:20:59,2020-04-18 12:20:59,grand-theft-auto-v,hide247

Почему SQL результат выбора соединения является таким избыточным?

1 Ответ

0 голосов
/ 18 апреля 2020

Ответ от: tcadidot0 mysql Результат соединения избыточен

Это потому, что ваше состояние ВКЛ в вас ПРИСОЕДИНЯЕТСЯ. Попробуйте это:

SELECT review.id, review.user_name, rating, content 
FROM review
     JOIN rated_game_library 
     #add this
     ON review.user_name = rated_game_library.user_name
     AND review.rated_game_library_game_slug = rated_game_library.game_slug
WHERE rated_game_library.game_slug = 'grand-theft-auto-v';

Ваш текущий запрос присоединяется к 'grand-theft-auto-v', обе таблицы появляются в двух строках. Вот почему он нашел два каждого user_name. Добавление ON

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...