![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
Igor_CH |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 288 Регистрация: 20.3.2005 Репутация: нет Всего: нет |
Что то я запутался, подскажите пожалуйста как сделать выборку.
Первая таблица ID | Nomer | k | … | ... 1 0 1 … 2 1 1 … 3 1 1 … 4 2 1 … ……………………….. Вторая таблица ID_R | name | kp1 | kp2 | …. 0 1 имя_1 1 0 2 имя_2 0 0 3 имя_3 1 1 ………………………. около 1000 имен! ID_R это NOMER из первой таблицы + (может это и не надо) Если k = 1 , то второй таблице принадлежат имена с kp1 = 1 Если k = 2 , то второй таблице принадлежат имена с kp2 = 1 Делаю выборку по первой таблице получаю: 0 1 1 2 и т.д. Как сделать чтоб вместо цифр подставлялись имена со второй таблицы? Это сообщение отредактировал(а) Igor_CH - 29.8.2006, 16:04 |
|||
|
||||
ewolf |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 389 Регистрация: 15.8.2006 Где: г. Москва Репутация: 2 Всего: 18 |
Ну так например:
|
|||
|
||||
Igor_CH |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 288 Регистрация: 20.3.2005 Репутация: нет Всего: нет |
а можно не в один запрос, в первой таблицы не только K но и много других подобных
|
|||
|
||||
ewolf |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 389 Регистрация: 15.8.2006 Где: г. Москва Репутация: 2 Всего: 18 |
Можно. Например
Ну и т.д. Но одним запросом много быстрее |
|||
|
||||
Igor_CH |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 288 Регистрация: 20.3.2005 Репутация: нет Всего: нет |
Спасибо! Буду пробывать...
|
|||
|
||||
Igor_CH |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 288 Регистрация: 20.3.2005 Репутация: нет Всего: нет |
Первый пример неполучится.
вот полностью первая таблица id_R | para | kurs | gruppa | den | predmet | prepod | predmet_kr | prepod_kr вторая таблица id_Rpred | name_Rpred | kp1 | kp2 | kp3 | kp4 | kp5 третья таблица id_Rprep | name_Rprep | k1 | k2 | k3 | k4 | k5 Как все это сходиться: первая таблица только цифры вторая и третья таблицы: id_... - цыфра, name_... - название, к... и kp... - цифры 0 или 1 predmet и predmet_kr - равны id_Rpred prepod и prepod_kr - равны id_Rprep kurs =1 тогда k1=1 и kp1=1 (kurs=2 тогда k2=1 и kp2=1 и т.д.) - но это наверно и не важно Мне нужна выборка например по: kurs=1 и gruppa=1 - получим 25 строк (5 дней по 5 пар), вместо цыфр имена из таблицы 2 и таблицы 3 Надеюсь понятна структура. |
|||
|
||||
cyberface |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 41 Регистрация: 6.6.2006 Репутация: 1 Всего: 5 |
Помоему тебе нужно просто.
|
|||
|
||||
Igor_CH |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 288 Регистрация: 20.3.2005 Репутация: нет Всего: нет |
не получается так
во первых 3 таблицы во вторых table2.id_Rpred = table1.predmet table2.id_Rpred = table1.predmet_kr table3.id_Rprep = table1.prepod table3.id_Rprep = table1.prepod_kr Делаю так
Т.е. получаю запрос, а внутри еще 4 запроса (сверху показал 1) и того на 25 строк 100 запросов!!! Это же не правильно? |
|||
|
||||
Igor_CH |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 288 Регистрация: 20.3.2005 Репутация: нет Всего: нет |
что правда нет других выходов кроме 100 запросов?
Мне еще надо если predmet != 0, а predmet_kr=0 то выводить только predmet Добавлено @ 15:25 может как то через массив, вот только как? ![]() |
|||
|
||||
cyberface |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 41 Регистрация: 6.6.2006 Репутация: 1 Всего: 5 |
>> не получается так
Ну ты хотя бы скажи почему не получается Попробуй так:
И вообще, я конечно понимаю, что это дело вкуса, но я запутался в названиях ты назови все как-нибудь по проще и что бы понятно было |
|||
|
||||
Igor_CH |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 288 Регистрация: 20.3.2005 Репутация: нет Всего: нет |
Спасибо получилось.
Но это только для двух ячеек: raspis.predmet = raspis_predmet.id_Rpred raspis.prepod = raspis_prepod.id_Rprep А как сделать еще и для: raspis.predmet_kr = raspis_predmet.id_Rpred raspis.prepod_kr = raspis_prepod.id_Rprep |
|||
|
||||
cyberface |
|
||||
![]() Новичок Профиль Группа: Участник Сообщений: 41 Регистрация: 6.6.2006 Репутация: 1 Всего: 5 |
Спасибо на репутации не отображается ![]() Надо так:
Либо так:
Последний вариант оптимальнее, так как, на сколько я помню, в джоинах лучше не указывать никаких дополнительных условий объединения, если их можно вынести в WHERE |
||||
|
|||||
Igor_CH |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 288 Регистрация: 20.3.2005 Репутация: нет Всего: нет |
Долго не мог ответить.
Коды выше у меня не хотят работать, может не так вывожу данные. Как сделать вывод результатов? Вот код который представлен выше:
|
|||
|
||||
-=Ustas=- |
|
|||
![]() Ustix IT Group ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2222 Регистрация: 21.1.2005 Где: Краснодар Репутация: 17 Всего: 69 |
Непонял, у тебя не работает запрос, или ты с результатом не можешь работать? -------------------- В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм. ----- |
|||
|
||||
Igor_CH |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 288 Регистрация: 20.3.2005 Репутация: нет Всего: нет |
Я не понял как вывести результат из такого запроса.
До того как было два LEFT JOINа было понятно:
а теперь 4 как вывести 4 ячейки?
|
||||
|
|||||
Igor_CH |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 288 Регистрация: 20.3.2005 Репутация: нет Всего: нет |
Мучил код понял так вообще нельзя.
Получается что raspis_predmet дожно ровняться raspis_predmet_kr, а raspis_prepod должно ровняться raspis_prepod_kr А они не равны. Значит запрос не правильный. Для двух ячеек все понятно, все работает:
А вот как добавить raspis_predmet_kr, а raspis_prepod и raspis_prepod_kr Что то типа такого кода (он не правилен!!!)
Т.е.: raspis.predmet = raspis_predmet.id_Rpred raspis.prepod = raspis_prepod.id_Rprep и raspis.predmet_kr = raspis_predmet.id_Rpred raspis.prepod_kr = raspis_prepod.id_Rprep причем: raspis.predmet не равно raspis.predmet_kr raspis.prepod не равно raspis.prepod_kr Это сообщение отредактировал(а) Igor_CH - 11.9.2006, 14:52 |
||||
|
|||||
![]() ![]() ![]() |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Базы Данных | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |