Reputation: 227
i have another case , i want to merging some column that have a same parent id but different child id each every group,
here is my table1;
+---------+----------+
|id_table1| value |
+---------+----------+
| 1 | value1 |
| 2 | value2 |
| 3 | value3 |
| 4 | value4 |
| 5 | value5 |
| 6 | value6 |
| 7 | value7 |
| 8 | value8 |
| 9 | value9 |
+---------+----------+
table2:
+---------+----------+
|id_table1| value |
+---------+----------+
| P1 | valueP1 |
| P2 | valueP2 |
+---------+----------+
and this is my relationship table:
+---------+----------+---------+
|id_boss | id_child | answ |
+---------+----------+---------+
| 1 | 2 | T |
| 1 | 6 | F |
| 2 | P1 | T |
| 2 | 4 | F |
| 6 | P2 | T |
| 6 | 8 | F |
+---------+----------+ --------+
and i'm looking a way to combine column id_child
and the result would be something like this :
:: Edited ::
+---------+-----------+-----------+
|id_boss | child_T | child_F |
+---------+-----------+-----------+
| value1 | value2 | value6 |
| value2 | valueP1 | value4 |
| value6 | valueP2 | value8 |
+---------+-----------+-----------+
id_child first row group id_boss is in child_T
and second row group id_boss is in child_F
Upvotes: 0
Views: 97
Reputation: 367
Is this what you want?
SELECT (SELECT value FROM table1 WHERE table1.id_table1 = r1.id_boss) AS id_boss,
COALESCE( (SELECT value FROM table1 WHERE table1.id_table1 = r1.id_child),
(SELECT value FROM table2 WHERE table2.id_table2 = r1.id_child)
) AS child_T,
COALESCE( (SELECT value FROM table1 WHERE table1.id_table1 = r2.id_child),
(SELECT value FROM table2 WHERE table2.id_table2 = r2.id_child)
) AS child_F
FROM r_table AS r1 JOIN r_table AS r2
ON r1.id_boss = r2.id_boss AND r1.id_child <> r2.id_child AND r1.answ = 'T'
;
Test here
Upvotes: 1