Мне нужна помощь в создании рабочего объединенного запроса между многими таблицами для проекта. Проблема в том, что я получаю повторяющиеся значения при выполнении запроса. Если вам нужен sql dump, я готов это сделать
и вот она: Таблица 1 :-( user) Таблица user.user_id является первичной и встречается много раз один раз в разных таблицах, а user.uname является своего рода первичной и встречается много раз в разных таблицах (это неопределенный первичный ключ, такой как user_id) 1) updates.user_id_u является вторичным по отношению к user.user_id и может встречаться много раз 2) updates.account_name и updates.author вторично по отношению к user.uname и может происходить много раз 3) group_posts.author_id вторично по отношению кuser.user_id и может встречаться много раз 4) group_posts.author_gp является вторичным по отношению к user.uname и может происходить много раз в зависимости от разных пользователей.5) user.user_id является первичным по отношению к voted_u.user_id_v (таблица, которая содержит столбцы «Нравится» и «Не нравится» для обновлений) и может встречаться много раз. 6) voted_g_c.user_id_reply_g вторично по отношению к user.user_id и может происходить много раз, так как пользователь может нажать на другойссылки на странице.7) voted_c.user_id_reply является вторичным по отношению к user.user_id и может происходить много раз, так как пользователь может щелкнуть по многим ссылкам на странице для обновления комментариев таблицы.
Таблица 2 :-( group_posts) group_posts.gp_id является первичным, тогда как group_posts.pid также является своего рода первичным для комментариев групповых сообщений (это означает комментарий к gp_id и может встречаться много раз) 1) group_posts.gname isвторичный по отношению к groups.name и может встречаться много раз, так как это имя группы.2) voted_g_u.vote_4_gid (таблица для group_posts, которые пользователям нравятся или не нравятся нажатия кнопок) является вторичной по отношению к group_posts.g_id и может происходить много раз, поскольку пользователи могут нажимать одну и ту же кнопку «нравится» или «не нравится» 3) group_posts.group_id является вторичной по отношению к groups.g_id иможет происходить много раз, сколько пользователей могут публиковать сообщения в одной группе.4) group_posts.author_id является вторичным по отношению к user.user_id и может встречаться много раз.
Таблица 3 :-( groups) groups.g_id является первичной и встречается только один раз, как и groups.name.1) groups.creator является вторичным по отношению к user.uname и может происходить много раз, так как пользователь может создать несколько групп.
Таблица 4 :-( comment_update) comment_update.comment_id является первичной и встречается только один раз.1) comment_update.os_id (исходный идентификатор статуса) является вторичным по отношению к update.update_id и может происходить много раз, так как пользователи могут писать комментарии к одному и тому же обновлению.2) comment_update.author_c связан с u.uname и может встречаться много раз 3) comment_update.user_id_c связан с user.user_id и может встречаться много раз
Таблица 4: - (члены или члены группы, что я хочучтобы сделать, я хочу получить пользователей той же группы и получить их group_updates) 1) gmembers.gname на самом деле имя группы и является вторичным по отношению к groups.name и может происходить много раз 2) gmembers.mname является именем пользователя илиотносится к user.uname и может встречаться много раз 3) gmembers.group_id является вторичным по отношению к groups.g_id и может происходить много раз 4) gmembers.user_id_group является вторичным по отношению к user.user_id и может происходить много раз, так как может быть членоммного групп
Таблица 5 :-( voted_u и voted_c) 1) voted_u.vote_4_update_id является вторичной по отношению к updates.update_id и может происходить много раз 2) voted_u.user_id_v вторичной по отношению к user.user_id и может происходить много раз длятот же voted_u.vote_4_update_id 3) voted_c.vote_4_reply_id является вторичным по отношению к comment_update.comment_id и can происходит много раз 4) voted_c.user_id_reply является вторичным по отношению к user.user_id и может встречаться много раз. Таблица 6 :-( voted_g_u & voted_g_c) первичный ключ для voted_g_u & voted_g_c, как voted_u и voted_c, не имеет вторичных значений 1) voted_g_u.Vote_4_gid является вторичным по отношению к group_posts.gp_id и может происходить много раз.
Запрос: -
SELECT DISTINCT up.*
, g.*
, cu.*
, gm.*
, gp.*
, v_g.*
, v_g_c.*
, v_u.*
, v_c.*
, u.uname
, u.avatar
, u.user_id
FROM group_posts as g
JOIN user u
ON u.user_id = g.author_id
LEFT
JOIN updates up
ON up.user_id_u = u.user_id
LEFT
JOIN groups gp
ON g.group_id = gp.g_id
LEFT
JOIN gmembers gm
ON gm.user_id_group = g.author_id
LEFT
JOIN comment_update cu
ON cu.os_id = up.update_id
LEFT
JOIN voted_g_u v_g
ON v_g.vote_4_gid = g.gp_id
LEFT
JOIN voted_g_c v_g_c
ON v_g_c.vote_4_reply_id = g.pid
LEFT
JOIN voted_u v_u
ON v_u.vote_4_update_id = up.update_id
LEFT
JOIN voted_c v_c
ON v_c.vote_4_reply_id = cu.comment_id
WHERE g.group_id = 25
AND u.user_id = 127
GROUP
BY up.update_id
, g.gp_id
ORDER
BY u.user_id desc
Если вы хотите знать, что отношения один ко многим лучше всего, я дам вам дамп sql и я открыт для вопросов.
редактировать:-Я понимаю, что я зеленый и мне нужно много учиться, но я ищу быстрое решение, чтобы завершить проект, так как изучение того, как сделать запрос, займет некоторое время.вот дамп sql: http://rextester.com/KRWG51655