Hice un borrador de aplicación remota sobre libpq para PostrgreSQL . Se comporta bien, pero he perfilado el funcionamiento general de la aplicación. Para cada resultado comercial final que produzco, sucede que llamo algo así como la cláusula 40 select (sobre tcpip).
Tengo reminiscencias de SQL-Server que me recuerdan minimizar la cantidad de interacciones entre mi aplicación remota y la base de datos. Después de analizar mis selecciones, creo que podría reducir este número a 3 SELECT
cláusulas, usando combinaciones. Pero no recuerdo la sintaxis para usar el resultado de a SELECT
en otro SELECT
.
P.ej:
SELECT * FROM individual
INNER JOIN publisher
ON individual.individual_id = publisher.individual_id
WHERE individual.individual_id = 'here I would like to use the results of a another select'
Este otro SELECT
sería simplemente del tipo:
SELECT identifier FROM another_table WHERE something='something'
Aquí está el diseño de tablas simplificado, rechazado varias veces para diferentes tipos de ítems ... (3 tipos totalmente diferentes, de ahí las 3 consultas SQL si están optimizadas).
table passage
id_passage PK
business_field_passage bytea
table item
id_item PK
id_passage FK
business_field_item text
table item_detail
id_item_detail PK
id_item FK
business_field_item_detail text
image_content bytea
Hay varios id_item
para uno id_passage
.
Hay varios id_item_detail
para uno id_item
.
¿Cómo escribirías eso?
¿Cuál es el nombre para describir la acción de redirigir una selección a otra (si corresponde)?
fuente
Respuestas:
¿Es esto lo que estás buscando? Asegúrese de que los campos que se comparan sean comparables (es decir, ambos campos son numéricos, de texto, booleanos, etc.).
Si desea seleccionar en función de múltiples valores:
fuente
SELECT someID FROM table WHERE blahblahblah
tiene múltiples registros? Voy a comprobar eso ahora mismo.WHERE Individual.IndividualId IN...
se ve bien.Puedes reescribir eso como otro
JOIN
. Esto normalmente es más simple y rápido:También simplifiqué un poco y eliminé la ortografía gratuita de CamelCase de los identificadores.
fuente
join
lugar de un?in ( select...)
En tal caso, también debería atribuir la buena respuesta a Erwin.