2017-01-19 8 views
0

Мой вопрос немного усложнен. Но я подробно объясню подробно ниже.Как получить идентификатор элементов дерева, когда у меня есть только родительский текст родителя

Прежде всего. У меня три таблицы базы данных, которые являются компанией, проектом и фазой. Когда я работаю SQL:

ВЫБРАТЬ company.ID AS CompanyID, company.Name AS COMPANYNAME, project.ID AS ProjectID, project.Name AS Projectname, phase.ID AS phaseID, phase.Name AS phaseName от компании остался присоединиться к проекту ON project.CompanyID = company.ID влево присоединиться к фазе на phase.ProjectID = project.ID WHERE company.Name = Order '' Общества2 По project.ID

я могу получить результаты на рисунке ниже. enter image description here

Но теперь я добавил новую таблицу базы данных, которая является treeview_items на изображении ниже. enter image description here

Я хочу, чтобы treeview_items таблицу присоединиться к таблице компании, таблицы проекта и фазы таблицы выше, с использованием phase.Name = treeview_items.text WHERE company.Name = Общества2

Ниже результат я хочу получить , enter image description here

Я пробовал много методов, но также не могу достичь результата, который я хочу. Кто-нибудь знает, как решить эту проблему, пожалуйста, помогите мне. Большое спасибо!!!

SS для sujivasagam enter image description here

Полностью таблица treeview_items

enter image description here

CREATE TABLE treeview_items (ID INT (11) NOT NULL, текст VARCHAR (200) NOT NULL, parent_id VARCHAR (200) NOT NULL) ENGINE = InnoDB DEFAULT CHARSET = latin1;

INSERT INTO treeview_items (id, text, parent_id) VALUES (1, 'Select All', '0'), (5, 'Company1', '1'), (7, 'Company2', '1'), (9, 'Project11', '5'), (10, 'Project23', '7'), (12, 'Project4', '7'), (14, 'Project5', '7'), (25, «Фаза 2», «9»), , «Фаза4», «9»), (29, «PhaseTest7», «9»), (30, «фаза23», «10»), (31, «Фаза1», «12»), (32, PhaseTest6 ',' 14 '), (33,' PhaseTest5 ',' 16 '), (34,' PhaseTest4 ',' 16 '), (56,' CompanyTest1 ',' 1 '), (63,' ProjectTest7 ' , '56'), (64, 'PhaseTest3', '63'), (65, 'Phase1', '10'), (68, 'PhaseTest2', '63'), (69, 'PhaseTest1', ' 63 '), (70,' Phase2 ',' 10 '), (73,' PhaseTest2 ',' 16 ');

ответ

0

Попробуйте этот запрос

SELECT company.ID AS companyID, company.Name AS companyName, project.ID AS projectID, project.Name AS projectName,phase.ID AS phaseID, phase.Name AS phaseName, tv.id as treeview_items_id FROM company left join project ON project.CompanyID = company.ID left join phase ON phase.ProjectID = project.ID left join treeview_items tv on(tv.text = phase.Name) WHERE company.Name = 'Company2' group by phaseID Order By project.ID 
+0

К сожалению, это получить неверный результат для столбца treeview_items_id. И результат: treeview_items_id не находится в моей таблице treeview_items. – eric

+0

пришлите мне скриншот результата, который вы получили – sujivasagam

+0

. Я добавляю ss выше. Я также предоставил полностью treeview_items выше – eric

 Смежные вопросы

  • Нет связанных вопросов^_^