EXCEPT
El operador EXCEPT devuelve las filas que aparecen en la primera consulta, pero no aparecen en la segunda. Se puede entender como una resta entre conjuntos.
Sintaxis
SELECT columna1, columna2 FROM tabla1 EXCEPT SELECT columna1, columna2 FROM tabla2;
Ejercicio
Pregunta: Obtenga los nombres de los planetas con distancia mayor a 1.00, y que no estén en la tabla de satelites.
Tabla de ejemplo
| tabla | nombre | dist | radio | grav | días | años | temp | anillo | planeta | descubridor | año |
|---|---|---|---|---|---|---|---|---|---|---|---|
| planeta | Mercurio | 0,39 | 0,38 | 2,8 | 58,646 | 0,241 | 440 | false | - | - | - |
| planeta | Venus | 0,72 | 0,95 | 8,9 | -243,019 | 0,615 | 730 | false | - | - | - |
| planeta | Tierra | 1,0 | 1,0 | 9,8 | 0,997 | 1,0 | 288 | false | - | - | - |
| planeta | Marte | 1,52 | 0,53 | 3,7 | 1,026 | 1,88 | 186 | false | - | - | - |
| planeta | Júpiter | 5,2 | 10,97 | 22,9 | 0,414 | 11,862 | 152 | true | - | - | - |
| planeta | Saturno | 9,54 | 9,14 | 9,1 | 0,444 | 29,447 | 134 | true | - | - | - |
| planeta | Urano | 19,19 | 3,98 | 7,8 | -0,719 | 84,017 | 76 | true | - | - | - |
| planeta | Neptuno | 30,07 | 3,86 | 11,0 | 0,671 | 164,791 | 53 | true | - | - | - |
| satelite | Calisto | - | - | - | - | - | - | - | Júpiter | Galileo Galilei | 1610 |
| satelite | Europa | - | - | - | - | - | - | - | Júpiter | Galileo Galilei | 1610 |
| satelite | Ganímedes | - | - | - | - | - | - | - | Júpiter | Galileo Galilei | 1610 |
| satelite | Ío | - | - | - | - | - | - | - | Júpiter | Galileo Galilei | 1610 |
| satelite | Luna | - | - | - | - | - | - | - | Tierra | - | - |
| satelite | Titán | - | - | - | - | - | - | - | Saturno | Christiaan Huygens | 1655 |
| satelite | Tritón | - | - | - | - | - | - | - | Neptuno | William Lassell | 1846 |
Solución
SELECT nombre as planeta FROM planeta WHERE dist > 1.00 EXCEPT SELECT planeta FROM satelite;
Resultado esperado
| Nombre |
|---|
| Marte |
| Urano |