как получить идентификатор элементов дерева, когда у меня есть только родительский текст родителя

Мой вопрос немного сложен. Но я подробно объясню подробно ниже.

Прежде всего. У меня есть три таблицы базы данных, которая является компанией, проектом и фазой. Когда я бегу 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 ОТ компании осталось присоединиться к проекту ВКЛ. Project.CompanyID = company.ID left присоединиться к фазе ON phase.ProjectID = project.ID WHERE company.Name = ‘Company2’ Сортировать по project.ID

Я могу получить результаты на картинке ниже.
введите описание изображения здесь

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

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

Ниже приведен результат, который я хочу получить.введите описание изображения здесь

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

СС для Судживасагамвведите описание изображения здесь

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

введите описание изображения здесь

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, «Выбрать все», «0»), (5, «Company1», «1»), (7, «Company2», «1»), (9 , «Project11», «5»), (10, «Project23», «7»), (12, «Project4», «7»), (14, «Project5», «7»), (16, « ProjectTest1 ‘,’ 7 ‘), (24,’ Phase1 ‘,’ 9 ‘), (25,’ Phase2 ‘,’ 9 ‘), (26,’ Phase3 ‘,’ 9 ‘), (27,’ Phase4 ‘ , «9»), (29, «PhaseTest7», «9»), (30, «phase23», «10»), (31, «Phase1», «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, «Фаза2», «10»), (73, «ФазаТест2», «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

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector