Re: SQl help to build a result with custom aliased bool column
От | Szymon Lipiński |
---|---|
Тема | Re: SQl help to build a result with custom aliased bool column |
Дата | |
Msg-id | CAFjNrYtsiGU4UXys0_Mu4-X+KOWqado9CrriwLRswsTexuN8fw@mail.gmail.com обсуждение исходный текст |
Ответ на | SQl help to build a result with custom aliased bool column (Arup Rakshit <ar@zeit.io>) |
Ответы |
Re: SQl help to build a result with custom aliased bool column
Re: SQl help to build a result with custom aliased bool column |
Список | pgsql-general |
Hey,
you could just use
regards,
Szymon
On Mon, 8 Apr 2019 at 09:55, Arup Rakshit <ar@zeit.io> wrote:
I have 2 tables Company and Feature. They are connected via a join table called CompanyFeature. I want to build a result set where it will have id, name and a custom boolean column. This boolean column is there to say if the feature is present for the company or not.
Company table:
| id | name |
|----|------|
| 1 | c1 |
| 2 | c2 |
| 3 | c3 |
Feature table:
| id | name |
|----|------|
| 1 | f1 |
| 2 | f2 |
| 3 | f3 |
Company Feature table:
| id | feature_id | company_id |
|----|------------|------------|
| 1 | 2 | 1 |
| 2 | 1 | 1 |
| 3 | 3 | 2 |
The result should look like for company `c1`:
| id | name | active |
|----|------|--------|
| 1 | f1 | t |
| 2 | f2 | t |
| 3 | f3 | f |
I tried something like:
SELECT
features.id,
features.name,
CASE WHEN company_features.company_id = 1 THEN
TRUE
ELSE
FALSE
END AS active
FROM
features
LEFT JOIN company_features ON company_features.feature_id = features.id
It works. But is there any better way to achieve this?
Thanks,
Arup Rakshit
ar@zeit.io
В списке pgsql-general по дате отправления: