mysql - Use value from first select for second select in union? -
lets i've got following table familiar example.
+----------------------------------+ | tags | +--------+-------------+-----------+ | tag_id | tag_name | parent_id | +--------+-------------+-----------+ | 1 | programming | null | | 2 | php | 1 | | 3 | class | 2 | | 4 | object | 2 | | 5 | method | 3 | +--------+-------------+-----------+ i'm trying devise query selects associated parent_id , tag_name based on value of initial select statement.
something this:
select * tags child child.tag_name = 'object' union select * tags parent parent.parent_id = child.parent_id i need able return combined rows both these queries why i'm using union.
the expected result should be:
+--------+-------------+-----------+ | tag_id | tag_name | parent_id | +--------+-------------+-----------+ | 2 | php | 1 | | 4 | object | 2 | +--------+-------------+-----------+ i think join may work can't quite make work.
try this:
select tag_id, tag_name, parent_id tags child child.tag_name = 'object' union select parent.tag_id, parent.tag_name, parent.parent_id tags parent inner join tags child on parent.tag_id = child.parent_id , child.tag_name = 'object'; check sql fiddle demo
output
| tag_id | tag_name | parent_id | |--------|----------|-----------| | 4 | object | 2 | | 2 | php | 1 |
Comments
Post a Comment