Postgresql donde existe consulta

Postgresql donde existe consulta

PostgreSQL: Uso de la cláusula de Where Exists

Cuando se usa cualquier consulta SQL dentro de otra consulta SQL, se llama subconsulta. La consulta complicada se puede escribir fácilmente dividiendo una consulta grande en múltiples subcons. La cláusula Exist se utiliza con una subconsulta en una declaración SQL. La salida de Exists depende de los números de registros devueltos por la subconsulta, pero no depende de los valores de los registros. El resultado de Exists será cierto si el subconsulador asociado devuelve al menos una fila. Cómo puede usar las declaraciones EXISTS y NO EXISTS en Seleccionar, Insertar, Actualizar y Eliminar las declaraciones se muestran en este tutorial utilizando diferentes ejemplos.

Existe sintaxis de la cláusula:

Seleccione COL1, COL2, COL3 ..
De table_name1
Donde existe (seleccione 1
DE
table_name2
Donde col1 = table_name1.col1);

Crea tres tablas nombradas Compañía, artículos y clientes e inserte algunos datos. Ejecute la siguiente consulta de selección para mostrar el contenido de estas tablas.

Seleccionar * de la empresa;
Seleccionar * de los elementos;
Seleccionar * de los clientes;

Ejemplo-1: Uso de la cláusula EXISTS en la consulta seleccionada

(a) Existe

La siguiente consulta recuperará registros de elementos tabla basada en compañía mesa. La subconsulta busca todos los registros de compañía mesa donde ID de la compañía de compañía La tabla es igual a ID de la compañía de elementos tabla y el valor de teléfono el campo no está vacío. Hay un registro en compañía tabla que no tiene número de teléfono y este registro se omitirá desde la salida.

Seleccione item_id, nombre, cantidad
De los artículos
Donde existe (seleccione 1
De la empresa
Donde artículos.Company_id = Company.Company_id and Company.teléfono");

Producción:

El registro de LG no tiene entrada telefónica en la mesa de la empresa. Entonces no aparece en la salida.

(b) No existe

No existe la cláusula es opuesta a la cláusula de existe. La siguiente consulta recuperará esos registros de elementos tabla cuando la subconsulta devuelve falso.

Seleccione item_id, nombre, cantidad
De los artículos
Donde no existe (seleccione 1
De la empresa
Donde artículos.Company_id = Company.Company_id and Company.Sitio web_url es nulo);

Producción:

No hay registro en compañía mesa donde URL del sitio web es nulo. Por lo tanto, la salida de subconsulta es falsa para todos los registros y todos los registros de la tabla de elementos se recuperan.

Ejemplo-2: Uso de la cláusula EXISTS en Insert Consuly

Según la siguiente consulta de inserción, los datos se insertarán en elementos mesa cuando ID de la compañía de ambos compañía y clientes Las tablas son iguales.

Insertar en elementos
(ID de la compañía)
Seleccionar Company_ID
De los clientes
Donde existe (seleccione 1
De la empresa, clientes
Donde los clientes.Company_id = Company.ID de la compañía);

Producción:

Hay tres entradas para ID de la compañía En la tabla de los clientes con valores son 1 y 2. Por lo tanto, la subconsulta devolverá verdadero por tres veces y se insertarán tres registros.

Ejecute la consulta de selección para verificar el contenido de la tabla de elementos.

Ejemplo-3: Uso de la cláusula EXISTS en la consulta de actualización

La siguiente consulta actualizará los registros de elementos mesa donde ID de la compañía es 1 y el subconsulto devuelve verdadero.

Actualizar elementos
Establecer nombre = "Nokia"
Donde Company_id = 1 y existe (seleccione 1
De los artículos
Donde nombre = "no asignar");

Producción:

Aquí, la subconsulta volverá verdadera por tres veces y ID de la compañía es 1 para tres registros. Se actualizarán tres registros después de ejecutar la consulta de actualización.

Ejecute la consulta de selección para verificar el contenido de la tabla de elementos.

Ejemplo-4: Uso de la cláusula EXISTS en Delete Consuly

La siguiente consulta eliminará esos registros de elementos mesa donde ID de la compañía es 1 y el subconsulto devuelve verdadero.

Eliminar de los artículos
Donde Company_id = 1 y existe (seleccione 1
De los artículos
Donde nombre = "no asignar");

Producción:

Hay tres registros con valor 1 de ID de la compañía Y un registro tiene valor de nombre 'No asignar'. Entonces, la condición será verdadera por tres veces y eliminará tres registros de elementos mesa.

Ejecute la consulta de selección para verificar el contenido de la tabla de elementos.

Espero que tenga una idea clara de usar la cláusula Exists en la consulta SQL después de leer este tutorial.