Регистрация
Вход через соцсети
Восстановление пароля

Замороченная проблема с SQL-запросом (listQuery)

Новый топик
02.04.2016, 02:45
Ответить | Цитировать
dekart
DaHost.Ru

Зарегистрирован:
2005-03-26
Сообщений: 76

Есть две таблицы:
- Участники:
Поля: номер по каталогу (число), кличка (строка), участие в шоу RingMono (лог.переменная) и т.д.
- Шоу и результаты:
Поля: название шоу, эксперт, дата, и семь полей (числовых) с номинациями: Best Kitten, Best Junior, Best Adult и др…

ЗАДАЧА: В шаблоне компонента Участники нужно вывести полученные номинации, если они есть.

В таблице «Шоу и результаты» хранится так:
Best Kitten - 45
Best Junior - 39
Best Adult – 56
Где 45, 39, 56 – это введенные вручную результаты в числовое поле Best Kitten, Best Junior или Best Adult. И эти же значения соответствуют номеру по каталогу участника NumCat (числовое поле в таблице Участники).
Привязка: NumCat в таблице «Участники» равно одно из значений из семи полей Best Kitten, Best Junior, Best Adult и т.п…

Сейчас так выводится: Монопородное шоу: Название шоу (23.04.2016), Фамилия эксперта: xxx
Нужно: Монопородное шоу: Название шоу (23.04.2016), Фамилия эксперта: Best Adult
Best Adult – это название поля в таблице «Шоу и результаты», где в числовом поле указан номер участника 56.

Т.е. в запросе выше нужно сравнить NumCat с каждым полем Best Kitten, Best Junior, Best Adult, а также еще и добавить название самого поля.
Вопрос: как вывести результат?


Мой нынешний запрос к БД:
Код:
<?= ($f_RingMono ? "
".listQuery("SELECT
a.Subdivision_ID, a.Breeds, DATE_FORMAT(a.Date,'%d.%m.%Y') as DateMono, a.NameForDip, a.Expert,
b.Message_ID, b.Experts
FROM Message2057 as a, Message2056 as b
WHERE a.Subdivision_ID = $sub AND a.Breeds like '%,8,%' AND a.Expert = b.Message_ID
"," Монопородное шоу: \$data[NameForDip] (\$data[DateMono]), \$data[Experts]: xxx<br />")."
":NULL) ?>


И еще важный момент... RingMono может быть выбран, но в результатах не указан, т.е. участвовал, но не выиграл... В таком случае вообще запись не должна выводиться...
Грубо говоря, нужно проверить, указан ли номер участника в одном из полей Best Kitten, Best Junior, Best Adult и др… и тогда вывести результат - Название поля.

Помогите, пожалуйста, советом, как сделать.
Буду благодарна за помощь!

dekart
12.04.2016, 00:10
Ответить | Цитировать
dekart
DaHost.Ru

Зарегистрирован:
2005-03-26
Сообщений: 76

Благодарю Константина Макурова - netcat.ru/ordersite/partners/xmka.html
Помог всё сделать оперативно.

dekart
198 196 2016-04-12 00:10:35 14484
Описание проекта