Eu fiz um rascunho de aplicativo remoto em cima da libpq para PostrgreSQL . Ele se comporta bem, mas eu perfilei o funcionamento geral do aplicativo. Para cada resultado final de negócio que eu produzo, acontece que eu chamo algo como 40 cláusula select (sobre tcpip).
Tenho reminiscências do SQL-Server me lembrando de minimizar o número de interações entre meu aplicativo remoto e o banco de dados. Tendo analisado meus selects, acho que poderia reduzir esse número para 3 SELECT
cláusulas, usando joins. Mas não me lembro da sintaxe para usar o resultado de a SELECT
em outro arquivo SELECT
.
Por exemplo:
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 outro SELECT
seria simplesmente do tipo:
SELECT identifier FROM another_table WHERE something='something'
Aqui está o layout das tabelas simplificado, declinado várias vezes para diferentes item_types ... (3 tipos totalmente diferentes, daí as 3 consultas SQL se otimizadas).
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
Existem vários id_item
para um id_passage
.
Existem vários id_item_detail
para um id_item
.
Como você escreveria isso?
Qual é o nome para descrever a ação de redirecionar um select para outro (se houver)?
É isso que você pretende? Certifique-se de que os campos que estão sendo comparados sejam comparáveis (ou seja, ambos os campos são numéricos, textuais, booleanos, etc).
Se você deseja selecionar com base em vários valores:
Você pode simplesmente reescrever isso como outro arquivo
JOIN
. Isso normalmente é mais simples e rápido:Também simplifiquei um pouco e eliminei a ortografia gratuita CamelCase de identificadores.