wmmail.ru – cервис почтовых рассылок на главную
написать письмо
карта сайта

С чего начать?РекламодательПравилаFAQСтатистикаБиржа статейTOP100ФоткиКонтакты
Логин:
Пароль: 
Регистрация   Забыли пароль?
WMLogin
Пользователей всего:

513582

Пользователей сегодня:

34

Пользователей online:

155

Выплачено ($): 7`607`263,41
Выплат: 8`116`759
Писем прочитано: 1`024`963`883
Новые вопросы

Задать свой вопрос


 
 
Online 0
Все ответы
 
 

Вопрос #54198

Внимание! В разделе вопрос-ответ запрещается:

  • Мат, оскорбления, флуд, реклама
  • Сообщения, не являющиеся вопросами/ответами
  • Нарушение законодательства РФ
  • Попрошайничество в любой форме

Выделите текст и нажмите для цитирования  #  
+1   [20.04.2013 23:42] Bonus85 Рейтинг 0.00     Стена пользователя Bonus85 +6

Закрытый вопрос от пользователя Bonus85 запрос к базе данных

имеется три таблицы:
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
Вопрос закрыт автором
Проголосовали: Perizat

Ответы
Ответов всего: 4  вопрос закрыт 
Выделите текст и нажмите для цитирования  #  
+2   [21.04.2013 00:15] Leningrad00 Рейтинг 1464.76     Стена пользователя Leningrad00 +355  Все ответы пользователя Leningrad00

Я, может, морально устарел, но всегда старался избегать JOIN-ов. Понять их сложно, легко ошибиться.
Допустим, что в описанном выше примере таблица USERS содержит три ячейки: id, name, surname.
SELECT A.id, A.name, A.surname, B.name from TableUsers as A, TableRoles as B, Relationship as C WHERE (A.id=C.userId) AND (B.id=C.roleId) AND (B.name='имя роли')
На оптимальность не претендую, но работать будет четко.
Проголосовали: Perizat, Bonus85
Выделите текст и нажмите для цитирования  #  
0   [21.04.2013 06:40] Bonus85 Рейтинг 0.00     Стена пользователя Bonus85 +6  Все ответы пользователя Bonus85

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

спасибо за помощь
Выделите текст и нажмите для цитирования  #  
+2   [21.04.2013 07:28] #1360291   Все ответы пользователя

Лично я все свои запросы проверяю сразу на практике. Первое, что меня интересует, это выдача результата, совпадающего с предполагаемым (что означает правильность запроса). Дальше уже можно играть с оптимизацией, красотой и так далее.
Проголосовали: Bonus85, #2112403
Выделите текст и нажмите для цитирования  #  
0   [21.04.2013 07:49] Bonus85 Рейтинг 0.00     Стена пользователя Bonus85 +6  Все ответы пользователя Bonus85

#1360291 пишет Лично я все свои запросы проверяю сразу на практике. Первое, что меня интересует, это выдача результата, совпадающего с предполагаемым (что означает правильность запроса). Дальше уже можно играть с оптимизацией, красотой и так далее.


у меня в теории все прекрасно работает :lol:, а вот на практике ...

Видеоурок

Вопрос-ответ

НОВОСТИ
19.04.2024Технические работы с СБП
подробнее>>
03.04.2024Выплаты
подробнее>>

© 2004-2024 «WMMAIL» Пользовательское соглашение