Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Помогите пожалуйста, составить выборку из нескольких таблиц
 
 автор: dagmor   (15.12.2006 в 11:29)   письмо автору
 
 

у меня есть три таблицы:

workstations - здесь хранится информация о рабочих станциях
_task_list - здесь хранятся списки задач решаемых станциями
__tasks - а здесь хранятся сами задачи

структура таблиц:

workstations:
id, integer - primary key
..
tasks, integer - ссылка на primary key таблицы _task_list


_task_list:

id, integer - primary key
task_0, integer - ссылка на primary key таблицы __tasks
task_1, integer - ссылка на primary key таблицы __tasks
task_2, integer - ссылка на primary key таблицы __tasks
task_3, integer - ссылка на primary key таблицы __tasks
task_4, integer - ссылка на primary key таблицы __tasks


__tasks:

id, integer - primary key
task, text - задача


мне требуется создать запрос так чтоб у меня выбрались задачи с 0ой по 4ую для одной рабочей станции.

делал так:

SELECT `tsk`.`task`, `tsk`.`task`, `tsk`.`task`, `tsk`.`task`, `tsk`.`task`
FROM
workstations ws,
_task_list tsl,
__tasks tsk
WHERE (`ws`.`tasks` = `tsl`.`id`)
AND
((`tsl`.`task_0` = `tsk`.`id`) AND
(`tsl`.`task_1` = `tsk`.`id`) AND
(`tsl`.`task_2` = `tsk`.`id`) AND
(`tsl`.`task_3` = `tsk`.`id`) AND
(`tsl`.`task_4` = `tsk`.`id`));

в итоге ничего не выводит...
если вместо последних четырех AND поставить OR то информация выбирается та но не коректно
(выбирается 5 строк и все пять столбцов с одинаковой инфой)
помогите пожалуйста составить корректный запрос

   
 
 автор: cheops   (15.12.2006 в 13:50)   письмо автору
 
   для: dagmor   (15.12.2006 в 11:29)
 

Хм... что-то не очень понятно, почему _task_list содержит четыре поля task_X - что в них хранится, из вашего запроса следует что SELECT выберет только те записи, таблицы _task_list в которых все пять полей task_X будут равны между собой?

PS У вас одну задачу решают несколько рабочих станций? Или рабочая станция решает несколько задач?

   
 
 автор: dagmor   (15.12.2006 в 13:54)   письмо автору
 
   для: cheops   (15.12.2006 в 13:50)
 

рабочие станции решают 5 разных задачи... списки задач повторяются для многих рабочих станций поэтому есть task_list

   
 
 автор: AlexelA   (15.12.2006 в 17:00)   письмо автору
 
   для: dagmor   (15.12.2006 в 11:29)
 

Все, что сейчас пришло в голову:

SELECT w.id,t1.task,t2.task,t3.task,t4.task,t5.task
FROM workstation w,tasks t1,tasks t2,tasks t3,tasks t4,tasks t5,task_list t_l
WHERE t1.id = t_l.task_0 and t2.id = t_l.task_1 and t3.id = t_l.task_2 
         and t4.id = t_l.task_3 and t5.id = t_l.task_4 and w.tascks = t_l.id 
               and w.id = <номер рабочей станции>;

Наверняка есть более простое решение. Но сейчас только так.
Данный пример практически соответствует условиям вашего запроса,т.к. я не
уверен в количестве символов подчеркивания в task_list и tasks. Подправьте сами.

   
 
 автор: dagmor   (16.12.2006 в 11:30)   письмо автору
 
   для: AlexelA   (15.12.2006 в 17:00)
 

классс.... спасибо за вариант, не мог и преположить что можно одной таблице делать несколько алиасов...

   
 
 автор: Trianon   (16.12.2006 в 08:46)   письмо автору
 
   для: dagmor   (15.12.2006 в 11:29)
 

task_list напрашивается в формате id, wks_id, task_id

   
 
 автор: dagmor   (16.12.2006 в 11:28)   письмо автору
 
   для: Trianon   (16.12.2006 в 08:46)
 

немогу понять почему он напрашивается в таком формате?

   
 
 автор: dagmor   (12.01.2007 в 11:49)   письмо автору
 
   для: dagmor   (16.12.2006 в 11:28)
 

помогите решить проблему

параллельно ведется в топике:
http://softtime.ru/forum/read.php?id_forum=3&id_theme=29931[

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования