Dudas en SQL (Oracle)

DiosUniverso

Se me ha propuesto mas de una vez este problema pero el profe unua dice la solución así que siempre estoy igual:

Obten, con una sola orden, el X mas caro y el mas barato.

¿Como se hace eso?
Yo tengo puesto

SELECT nombre,PVP FROM articulos_mig WHERE PVP IN (SELECT MIN(pvp),MAX(PVP) FROM articulos_mig)

pero dice que demasiados valores.

Poisonous

No puedo probarlo pq no tengo un gestor a mano pero podria ser

(SELECT nombre,PVP FROM articulos_mig WHERE PVP = (SELECT MIN(pvp) FROM articulos_mig))
UNION
(SELECT nombre,PVP FROM articulos_mig WHERE PVP = (SELECT MAX(pvp) FROM articulos_mig));

Z3R0KULL

no puedo probarlo ahora mismo, pero creo que podria ser mas facil asi (repito, no lo he probado)

SELECT nombre,PVP FROM articulos_mig WHERE PVP = (SELECT MIN(pvp) FROM articulos_mig)
or PVP = (SELECT MAX(pvp) FROM articulos_mig)

cabron

La solución de #2 te da lo que pides.

N3uMaN

Te vale la de #2 y la de #3

D

.. lol se me fue la olla ... nvm

2 años después
B1x1t0

Buenas gente!
Tengo una duda. 3 tablas:

tabla 1: id_tabla1 , bla bla, bla bla.
tabla 2: id_tabla2, bla bla, bla bla.
tabla3: id_tabla1, id_tabla2

en la tabla 3 repito cuantas veces quiero la id_tabla1 y la id_tabla2 tal que asi:

id_tabla1, id_tabla2
1 , 1
1 , 2
1 , 2
2 , 2
2, 2

Ahora viene el problema. Necesito borrar un registro tal que id_tabla1 = 1 y id_tabla2 = 2, asi que si hago una consulta normal me borraria los dos registros, pero solo necesito borrar uno. He pensado en poner un tercer campo, pero claro, cuando haga la consulta solo sabría los campos de id_tabla1 e id_tabla2, asi que no me serviría (o eso creo).

¿Hay alguna solución del lenguaje o alguien que ya sea mas listo que el diablo por aqui? :)

1 respuesta
tada

#7

DELETE FROM tabla3 WHERE id_tabla1 = 1 AND id_tabla2 = 2 LIMIT 1
1 respuesta
B1x1t0

#8 Muchas gracias T.T, mira que he buscado por ahí y no encontraba nada.

Usuarios habituales