Мне нужно представление, которое будет содержать столбцы, CatId и Flag. Флаг будет равен 1, если существует какая-либо подкатегория для CatID - PullRequest
0 голосов
/ 21 июня 2019

Есть две таблицы: Category и CatID | CatName.

|   | CatID | CategoryName       |
|---|-------|--------------------|
| 1 | 1021  | Home               |
| 2 | 1022  | Corporate          |
| 3 | 1023  | Products           |
| 4 | 1024  | Gardens            |
| 5 | 1025  | Investor Relations |
| 6 | 1026  | News & Events      |
| 7 | 1027  | Contact Us         |

и SubCategory и SubID | CatID

|    | SubID | CatID |
|----|-------|-------|
|  1 |    9  |  1025 |
|  2 |    5  |  1022 |
|  3 |    6  |  1022 |
|  4 |   10  |  1025 |
|  5 |   11  |  1025 |
|  6 |   12  |  1025 |
|  7 |   13  |  1025 |
|  8 |   14  |  1025 |
|  9 |   15  |  1025 |
| 10 |   16  |  1026 |
| 11 |   17  |  1026 |
| 12 |    7  |  1022 |
| 13 |    8  |  1022 |
| 14 |   18  |  1023 |

Я хочу получить представление, вкоторых будет два столбца View и CatID | Flag, где 0, если для этого нет подкатегории CatId иначе 1.

1 Ответ

2 голосов
/ 21 июня 2019

Я бы посчитал подкатегории и присоединился бы к этому:

CREATE VIEW my_view AS
SELECT c.CatId, CASE WHEN cnt IS NOT NULL THEN 1 ELSE 0 END AS Flag
FROM   Categoery c
LEFT JOIN (SELECT   CatId, COUNT(*) AS cnt
           FROM     SubCategory
           GROUP BY CatId) s ON c.CatId = s.CatId
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...