2015-10-05 89 views
-1

我有两个表,我的第一个表是piutang麻烦查询连接两个表

------------------------------------------------ 
id nmr_bukti  tgl_transaksi customer_id 
------------------------------------------------ 
1  2015RSV0001 2015-09-17  42 
2  2015RSV0002 2015-09-17  42 
------------------------------------------------ 

,第二个表invoice_detail

------------------------------------------------ 
id invoice_id  customer_id  nmr_bukti 
------------------------------------------------ 
1  1    42    2015RSV0001  
2  1    42    2015RSV0001  
------------------------------------------------ 

我想要得到的结果就这样与条件customer_id = 42

------------------------------------------------ 
id nmr_bukti  tgl_transaksi customer_id  
------------------------------------------------ 
1  2015RSV0002 2015-09-17   42    
------------------------------------------------ 

我该如何查询这种情况?

+0

两个你的表有ID = 1 nmr_bukti = '2015RSV0001' ..那么,为什么nmr_bukti = '2015RSV0002' 为ID = 1在你想要的结果? –

+0

想要的结果中有哪个id列,来自piutang的还是来自invoice_detail的? – jarlh

+0

我开始认为没有它们不是这两个,id实际上是一个row_number :) –

回答

0

您可以使用下面的query

SELECT DISTINCT p.id, p.tgl_transaksi, p.customer_id 
FROM piutang AS p 
LEFT JOIN invoice_detail AS id 
ON p.customer_id=id.customer_id 
AND p.nmr_bukti=id.nmr_bukti 
WHERE p.customer_id = 42 
AND id.id is null; 

注:为了获得更好的性能和CUSTOMER_ID领域mnr_bukti应该被索引。

0

尝试 -

SELECT * FROM piutang 
WHERE nmr_bukti NOT IN 
    (SELECT DISTINCT nmr_bukti 
    FROM invoice_detail 
    WHERE customer_id = 42) 
AND customer_id = 42; 
+0

与SELECT * FROM工作piutang WHERE nmr_bukti NOT IN (SELECT DISTINCT nmr_bukti FROM invoice_detail WHERE CUSTOMER_ID = 42) AND CUSTOMER_ID = 42; thxs guys – user3585448

+0

不客气。 – toonice

+0

为什么在子选择DISTINCT?如果nmr_bukti不可用,那么NOT IN有点“危险”......) – jarlh