1. links: link_id, road
2. roads: road, code
2. admin_classes: code, admin_class, priority
所以,對於一個LINK_ID我有幾個代碼和幾個admin_class +優先原糖 但在結果集我需要爲每個link_id只有一行: link_id和admin_class,那指的是最低優先級。 我儘量讓sql語句,像下面:SQL:如何添加條件對內部的選擇
select l.link_id, ac.admin_class, min(ac.priority)
from base.links as l
inner join base.admin_classes as ac
on ac.code=l.code
where ac.admin_class<>0
但是,首先,它不工作,這是不是我所需要的。我想在結果集只有兩列 - link_id和admin_class
然後我嘗試以下操作:
select l.link_id, (select ac.admin_class from base.admin_classes as ac where ac.code=l.code
order by ac.priority limit 1) as admin_class from base.links as l
這是正確的,但我不知道如何在內部選擇添加條件,我只需要admin_class原糖<> 0
我使用PostgreSQL 8.3
預先感謝您。
對不起,我試圖簡化和寫錯了))我們遵循表1:link_id,代碼。表2:身份證,代碼,道路。 table3:道路,admin_class,優先級。所以我們有一個link_id和一個link_id從表3幾條道路,但我們希望得到link_id + admin_class具有最小優先權) – user498274 2010-11-05 12:26:08
感謝您的回答)但我只需要在結果集中的兩列,因爲我在imsert中使用它clouse((和最後一條語句將返回followng原始1-2-2,1-3-2,1-4-2一個link_id = 1,但我只需要一行link_id – user498274 2010-11-05 12:37:40