'Join with adding new row
I have a query which returns next table with name first_table:
Name | ID |
---|---|
First | 1 |
Second | 2 |
And I need to join another table named second_table:
ID | ParentID |
---|---|
22 | 1 |
33 | 323 |
By the columns first_table."ID" = second_table."ParentID", so if first_table_id exists, I need to add one more row with its first_table."Name" value
So the result should be:
Name | ID |
---|---|
First | 1 |
First | 22 |
Second | 2 |
Solution 1:[1]
You can do something like this (result here)
select t1.name,t1.id
from t1 join t2 on t1.id = t2.parent_id
union
select t1.name,t2.id
from t1 join t2 on t1.id = t2.parent_id
union
select t1.name,t1.id
from t1
where t1.id not in (select parent_id from t2)
order by name,id
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | Philippe |