2016-07-22 79 views
1

我有兩個表:tableA和tableB。 TableA具有字段idA,tableB具有記錄idB和idBPtrA,其中idBptrA是指向tableA(idA之一)的指針。我如何獲得以下postgres查詢?

我希望使用postgres從TableA中選擇tableB中記錄數最少的記錄。

喜歡的東西:

select idA,idB,count(idBPtrA) as c 
from tableA,tableB 
group by idBPtrA 
where idA=idB order by c 

當然,這並不工作,並給我一個錯誤,但我認爲它應該是非常相似的...任何想法?

+0

如果最小數目爲0會怎樣? –

+0

沒關係,那應該選擇它。 @Gordon – kloop

回答

0

我想這是你想要的查詢:

select a.idA, count(b.idB) as c 
from tableA a left join 
    tableB b 
    on a.idA = b.idptrA 
group by a.idA 
order by c; 

注:

  • 使用表別名和限定列名(特別是如果你正在學習SQL)。
  • 學習和使用正確的,明確的JOIN語法。簡單的規則:從不FROM子句中使用逗號。