Eu fiz um rascunho de aplicativo remoto sobre a libpq para o PostrgreSQL . Ele se comporta bem, mas criei um perfil do funcionamento geral do aplicativo. Para cada resultado comercial final que produzo, chamo algo como a cláusula 40 select (over tcpip).
Tenho reminiscências do SQL Server lembrando-me de minimizar o número de interações entre meu aplicativo remoto e o banco de dados. Depois de analisar minhas seleções, acho que poderia reduzir esse número para 3 SELECT
cláusulas, usando junções. Mas não me lembro da sintaxe para usar o resultado de um SELECT
em outro 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 simplificado das tabelas, recusado várias vezes para diferentes tipos de item ... (3 tipos totalmente diferentes, portanto, 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 uma seleção para outra (se houver)?
fonte
Respostas:
É isso que você está buscando? Verifique se os campos que estão sendo comparados são comparáveis (ou seja, os dois campos são numéricos, texto, booleano etc.).
Se você deseja selecionar com base em vários valores:
fonte
SELECT someID FROM table WHERE blahblahblah
tiver vários registros? Vou verificar isso agora.WHERE Individual.IndividualId IN...
parece bom.Você pode reescrever isso como outro
JOIN
. Isso normalmente é mais simples e rápido:Também simplifiquei um pouco e acabei com a grafia gratuita dos identificadores do CamelCase.
fonte
join
vez de umin ( select...)
Nesse caso, também devo atribuir a boa resposta a Erwin.