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

Я пытаюсь выбрать группы, в которые зарегистрировался пользователь, и которые указаны в таблице участников.
и отображать обновления на одной странице всех групп, членом которых является пользователь, но каждый раз, когда он продолжает отображать обновления из каждой созданной группы, даже если они не являются членами. Так как я могу сделать так, чтобы отображались только группы, к которым присоединился пользователь?

Вот мой запрос до сих пор:

    $select_posts_from_groups_query = $db->query("SELECT spud_groups_posts.post_body,spud_groups_posts.group_url,spud_groups_members.member_name
FROM spud_groups_posts LEFT JOIN spud_groups_members ON spud_groups_posts.post_body = spud_groups_members.member_name");while($select_posts_from_groups_array = $db->fetch_array($select_posts_from_groups_query)) {

$group_url_id = $select_posts_from_groups_array['group_url'];
$post_body = $select_posts_from_groups_array['post_body'];

$select_group_data_from_posts_query = $db->query("SELECT * FROM spud_groups WHERE gid='$group_url_id'");
$select_group_data_from_posts_array = $db->fetch_array($select_group_data_from_posts_query);
$group_name_data = $select_group_data_from_posts_array['group_name'];#$group_name_data = false;
echo "<div class='mx'>
<p> <h2> $group_name_data </h2></p>
$post_body</div>
<br>
";
}

Никогда ранее не выполнял SQL-соединения, поэтому.

0

Решение

Прежде всего, хорошей практикой будет использование псевдонимов, чтобы ваш код выглядел намного лучше

SELECT
gr.post_body,
gr.group_url,
mem.member_name
FROM
spud_groups_posts gr
LEFT JOIN spud_groups_members mem ON
gr.post_body = mem.member_name

Этот запрос даст вам все результаты из таблицы spud_groups_posts и соответствующие результаты из spud_groups_members,

Вы должны заменить LEFT JOIN на JOIN или INNER JOIN (те же результаты).


Как вы упомянули в комментарии, ваш ResultSet пуст — это означает, что у вас нет соответствующих значений в столбцах post_body из таблицы spud_groups_posts с member_name от
spud_groups_members

1

Другие решения

В вашем выборе вы используете левое соединение.
Поэтому все группы выбраны.

Вместо этого вы должны использовать INNER JOIN.

0

По вопросам рекламы [email protected]