我已经在Postrgresql的libpq上创建了一个草案远程应用程序.它表现良好,但我已经分析了应用程序的一般功能.对于我生成的每个最终业务结果,我会调用40 select子句(通过tcpip).
我有来自sql-Server的回忆,提醒我最小化远程应用程序和数据库之间的交互次数.分析了我的选择后,我认为我可以使用连接将此数字减少为3个SELECT子句.但我不记得在另一个SELECT中使用SELECT结果的语法.
例如.:
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'
这个其他SELECT只是那种:
SELECT identifier FROM another_table WHERE something='something'
这是简化的表格布局,对于不同的item_types拒绝了很多次…(3种完全不同的类型,因此如果优化了3个SQL查询).
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
一个id_passage有几个id_item.
一个id_item有几个id_item_detail.
这是你的目标吗?确保要比较的字段具有可比性(即两个字段都是数字,文本,布尔值等).
SELECT * FROM Individual INNER JOIN Publisher ON Individual.IndividualId = Publisher.IndividualId WHERE Individual.IndividualId = (SELECT someID FROM table WHERE blahblahblah)
如果您希望根据多个值进行选择:
SELECT * FROM Individual INNER JOIN Publisher ON Individual.IndividualId = Publisher.IndividualId WHERE Individual.IndividualId IN (SELECT someID FROM table WHERE blahblahblah)