Hola tengo que hacer una consulta que me esta dando guerra, y no lo resuelvo.
Simplificando al maximo la cosa seria:
TABLA productos:
Código:
id id_PADRE Texto familia
1 0 percha 1
2 0 libro 2
3 0 tenedor 2
4 -1 camisa 2
5 4 camisa azul 2
6 0 flores 2
7 0 cuchara 2
8 4 camisa verde 2
Lo que quiero es por ejemplo seleccionar de FAMILIA = 2 y que os id_PADRE <1
y si encuentran un id_PADRE = -1 entonces busque los artículos que id_PADRE = id
y que ordene por Texto Ascendente.
El resultado buscado es:
Código:
id id_PADRE Texto familia
4 -1 camisa 2
5 4 camisa azul 2
8 4 camisa verde 2
7 0 cuchara 2
6 0 flores 2
2 0 libro 2
3 0 tenedor 2
El primer SELECT seria:
Código SQL:
Ver originalSELECT
p.id,p.id_PADRE,p.Texto
FROM productos p
WHERE p.id_PADRE<1 AND p.familia=2
ORDER BY p.Texto
Con este select, obtendría:
Código:
id id_PADRE Texto familia
4 -1 camisa 2
7 0 cuchara 2
6 0 flores 2
2 0 libro 2
3 0 tenedor 2
Lo que necesito es en SQL si id_PADRE=-1 que busque las filas con id_PADRE=id
para que a continuación de la primera linea ponga:
Código:
id id_PADRE Texto familia
5 4 camisa azul 2
8 4 camisa verde 2
alguna idea???
He mirado UNION, con JOIN, pero no doy con la formula.
GRACIAS!!!