- 13, May 2024
- #1
Мне нужно выбрать данные из 5 разных таблиц. Основная таблица — «Уведомления». Ниже приведены строки из «Таблицы уведомлений», которые я хочу выбрать.
ВЫБЕРИТЕ * ИЗ
Некоторые таблицы имеют прямую связь с Уведомлением о таблице, а некоторые таблицы связаны через другие таблицы. Мой ожидаемый результат следующий.
Где мне придется взять «Название компании», «Код SIC» из «Таблицы компаний»;
Но я не совсем уверен.
Можете ли вы помочь?
ВЫБЕРИТЕ * ИЗ
notices
WHERE Notifications.publication_date > '2020-03-01' иnotices.publication_date < '2020-03-31'
Теперь мне также приходится выбирать связанную информацию для этих строк из разных таблиц.
Некоторые таблицы имеют прямую связь с Уведомлением о таблице, а некоторые таблицы связаны через другие таблицы. Мой ожидаемый результат следующий.
Где мне придется взять «Название компании», «Код SIC» из «Таблицы компаний»;
Описание кода SIC
из Таблицы Sic_Codes
; Prac.Name
, Prac.Company
, Prac.Phone
из Table Insovency_Practionar
SELECT n.id
, n.gazette_notice_id, n.notice_code, n.company_number, n.publication_date, c.company_name, c.registered_address_town, c.registered_address_postcode, c.sic_1, s.description, s.division, s.section, i.name practionar_name, i.company practitioner_company, i.address prac_address, i.phone
FROM notices n
LEFT
JOIN companies c
ON c.company_number = n.company_number
LEFT
JOIN sic_codes
ON s.code = c.sic_1
LEFT
JOIN notice_insolvency_practitioners ni
ON ni.notice_id = n.id
LEFT
JOIN insolvency_practitioners i
ON i.id = ni.insolvency_practitioner_id
WHERE n.publication_date >'2020-05-01'
AND n.publication_date <'2020-05-31'[/cpde]
Thanks in advance.
Код (разметка): Ниже я описал связь между каждой таблицей с помощью «Уведомлений о таблицах».
«Табличные компании» имеют прямое отношение к «Табличным уведомлениям».
+-------+-------------+------------------+-----------------+--------------+----------+--------------------------+------------+--------------+------------+ | ID | Notice Code | Publication_Date | Company_Number | Company Name | SIC Code | Sic Code Description | Prac.
Name | Prac.company | Prac_Phone | +-------+-------------+------------------+-----------------+--------------+----------+--------------------------+------------+--------------+------------+ | 96008 | 2410 | 2020-03-02 | 09844265 | ATL Logistic | 49410 | Freight Transport | Mr. Conard | Conard Ltd | 01234567 | | 96014 | 2410 | 2020-03-02 | 02640968 | New-Tonne | 28220 | Manufacturer Lifting… | Mr. Andrew | Andrew Ltd | 03243434 | | 96032 | 2410 | 2020-03-02 | 03666759 | Sonataine | 41100 | Development and Building | Mr. Mark | Mark Ltd | 038743287 | +-------+-------------+------------------+-----------------+--------------+----------+--------------------------+------------+--------------+------------+
Код (разметка): «Table Sic_codes» не имеет прямого отношения к «Table Notifications». Но так было и с «Table Companies».
Table: Notice_insolvency_practitionar_ID . Notice_insolvency_practitionar_ID. Notice_ID = Notices.
ID +-----------+-----------------------------+ | Notice_ID | Insolvency_Practiotionar_ID | +-----------+-----------------------------+ | 96008 | 1048 | | 96014 | 725 | | 96032 | 548 | +-----------+-----------------------------+ [code=text] I have to use the above table to fetch relevant rows from the below table.
[code=text] Table: Insovency_Practionar . Insovency_Practionar.ID = Notice_insolvency_practitionar_ID. Insolvency_Practiotionar_ID +------+------------+------------+------------+-----------+-------------------+ | ID | Name | Company | Address | Phone | Email | +------+------------+------------+------------+-----------+-------------------+ | 1048 | Mr. Conard | Conard Ltd | Birmingham | 01234567 | [email protected] | | 725 | Mr. Andrew | Andrew Ltd | New Road | 03243434 | [email protected] | | 548 | Mr. Mark | Mark Ltd | Hamilton | 038743287 | [email protected] | +------+------------+------------+------------+-----------+-------------------+
Код (разметка): Table Insovency_Practionar
не имеет прямого отношения к Table Notifications
. Существует еще одна таблица «Table Notification_insolvency_practitionar_ID» для создания связи между этими двумя таблицами «Table Insovency_Practionar и Table Notifications».
Table: Sic_Codes.
Companies.Sic1 = Sic_code.Code +-----+-------+--------------------------+------------------------+----------------+ | ID | Code | Description | Division | Section | +-----+-------+--------------------------+------------------------+----------------+ | 468 | 49410 | Freight Transport | Land Transport | Transportation | | 262 | 28220 | Manufacture of Lifting… | Machinery and Eqipment | Manufacture | | 334 | 41100 | Development and Building | Construction Building | Construction | +-----+-------+--------------------------+------------------------+----------------+
Код (разметка):
Мой ожидаемый результат
Table: Companies Companies.Company_number = Notices.
Company_ Number +-------+--------------+-----------------+--------------+----------+-------+ | ID | Company_Name | Company_Number | Address | postcode | Sic1 | +-------+--------------+-----------------+--------------+----------+-------+ | 81983 | ATL Logistic | 09844265 | Scot Street | DY4 7AG | 49410 | | 81989 | New-Tonne | 02640968 | Withins Road | WA11 9UD | 28220 | | 82004 | Sonataine | 03666759 | Vastry Road | TN14 5EL | 41100 | +-------+--------------+-----------------+--------------+----------+-------+
Код (разметка): как объединить эти таблицы, чтобы выбрать данные с соответствующей информацией.
Я использовал следующий запрос.
Но я не совсем уверен.
Можете ли вы помочь?
+-------+-------------+------------------+-----------------+--------------+----------+--------------------------+------------+--------------+------------+ | ID | Notice Code | Publication_Date | Company_Number | Company Name | SIC Code | Sic Code Description | Prac.
Name | Prac.company | Prac_Phone | +-------+-------------+------------------+-----------------+--------------+----------+--------------------------+------------+--------------+------------+ | 96008 | 2410 | 2020-03-02 | 09844265 | ATL Logistic | 49410 | Freight Transport | Mr. Conard | Conard Ltd | 01234567 | | 96014 | 2410 | 2020-03-02 | 02640968 | New-Tonne | 28220 | Manufacturer Lifting… | Mr. Andrew | Andrew Ltd | 03243434 | | 96032 | 2410 | 2020-03-02 | 03666759 | Sonataine | 41100 | Development and Building | Mr. Mark | Mark Ltd | 038743287 | +-------+-------------+------------------+-----------------+--------------+----------+--------------------------+------------+--------------+------------+
Код (разметка):