имеется три таблицы:
1 описание пользователя (первичный ключ id)
2 описание роли (первичный ключ id)
3 связь (имеет лишь два ключа userId и roleId)
нужно получить всех пользователей относительно роли
SELECT * FROM TableUsers user INNER JOIN Relationship relation ON relation.userId=user.id INNER JOIN TableRoles role ON role.id=relation.roleId WHERE role.name='имя роли'
правильно ли составил запрос? а то мучают сомнения относительно этой конструкции
раз
91
два
4
три
7
елочка гори
45
Раздел: Программирование, проголосовало: 147, последний комментарий: 21.04.2013 07:49 Вопрос закрыт автором
Я, может, морально устарел, но всегда старался избегать JOIN-ов. Понять их сложно, легко ошибиться.
Допустим, что в описанном выше примере таблица USERS содержит три ячейки: id, name, surname.
На оптимальность не претендую, но работать будет четко.
Лично я все свои запросы проверяю сразу на практике. Первое, что меня интересует, это выдача результата, совпадающего с предполагаемым (что означает правильность запроса). Дальше уже можно играть с оптимизацией, красотой и так далее.