关于将查询合并为一个

时间:2012-07-12 08:49:01

标签: sql

我有查询,我已经执行了查询..

首先是TXN_HEADER表。

select * from TXN_HEADER where txhd_receipt_id = 'receipt_id_val' and till_short_desc = 'till_no_val'

从上面的TXN_HEADER表中我们得到transaction_no值(例如txhd_txn_nr),用于在TXN_DETAIL表中查找交易详情。

select * from TXN_DETAIL where txhd_txn_nr = 'transaction_no_val' and till_short_desc = 'till_no_val

我的查询是我正在分别编写这些查询你们可以建议我可以通过任何方式将它们组合成单个查询,我的意思是通过子查询,通过连接。请指教。

3 个答案:

答案 0 :(得分:1)

加入版本:

select * 
  from TXN_HEADER 
 inner join TXN_DETAIL 
    on TXN_HEADER.txhd_txn_nr = TXN_DETAIL.txhd_txn_nr
 where TXN_HEADER.txhd_receipt_id = 'receipt_id_val' 
   and TXN_HEADER.till_short_desc = 'till_no_val'
   and TXN_DETAIL.till_short_desc = 'till_no_val'

答案 1 :(得分:0)

如果列[txhd_txn_nr]可以关联这两个表,您可以尝试使用此查询:

select * from TXN_DETAIL where txhd_txn_nr in (select transaction_no_val from TXN_HEADER where txhd_receipt_id = 'receipt_id_val' and till_short_desc = 'till_no_val') and till_short_desc = 'till_no_val

答案 2 :(得分:0)

你应该有一个加入的身份

select * from TXN_HEADER H
join TXN_DETAIL D
on H.<id>=D.<id>
where  H.txhd_receipt_id = 'receipt_id_val' and H.till_short_desc = 'till_no_val'
and D.txhd_txn_nr = 'transaction_no_val' and D.till_short_desc = 'till_no_val'