MySQL vs PHP: Сложный запрос с участием 3х таблиц Вот, собственно, таблицы: Таблица: user | user_id | user_name | | 22 | ОЛЯ | | 23 | ОЛЕГ | | 24 | ВИКА | | 25 | АНТОН | Таблица: group | group_id | user_id | | 33 | 22 | | 33 | 23 | | 34 | 24 | | 35 | 25 | Таблица: groupname | group_id | group_name | | 33 | ГОСТЬ | | 34 | УЧАСТНИК | Есть имена пользователей (user_name в табл. user). Каждый из них входит в определенную группу (group_name в табл. groupname). Например, пользователи ОЛЯ и ОЛЕГ входят в группу ГОСТЬ, а ВИКА и АНТОН входят в группу УЧАСТНИК Как вытащить имя пользователей (user_name из табл. user) из определенной группы (group_name из табл. groupname). Проще говоря, как вытащить имена пользователей из группы ГОСТЬ? Я писал такой код: $query = "SELECT user.user_name FROM user INNER JOIN group ON group.user_id = user.user_id INNER JOIN groupname ON groupname.group_name = 'ГОСТЬ'"; $result = mysql_query($query) or die(mysql_error()); while ($row = mysql_fetch_array($result)) { echo $row['user_name'].""; } Но код, кажется, выводит имена всех пользователей, а не конкретно с группы ГОСТЬ
Код (Text): SELECT u.user_name FROM user u JOIN group g ON g.user_id = u.user_id WHERE g.group_id = 33
В запросе отсутсвует условие отбора (WHERE). объединение талиц не верно Думаю что так будет верно: Код (Text): $query = "SELECT user.user_name FROM user INNER JOIN group ON group.user_id = user.user_id INNER JOIN groupname ON groupname.group_id=group.group_id WHERE groupname.group_name = 'ГОСТЬ'"; $result = mysql_query($query) or die(mysql_error()); while ($row = mysql_fetch_array($result)) { echo $row['user_name'].""; }
patashnik, group_id не хранит постоянные значения, они могут меняться. Мне нужно "цепляться" именно за category_name Добавлено спустя 30 минут 59 секунд: Givan, результата нет ( ************************************************************** Пардон, все работает вроде бы. Спасибо!