鍍金池/ 問答/人工智能  數(shù)據(jù)庫/ 數(shù)據(jù)庫兩個表交叉查詢的問題

數(shù)據(jù)庫兩個表交叉查詢的問題

一張商品表a,
一張商品標(biāo)簽表b
表a一個商品對應(yīng)一條記錄
表b一個商品對應(yīng)多條記錄(多個標(biāo)簽)

請問我如何一次性取出滿足一定條件的表a和表b的記錄???
已做過以下嘗試-
1.通過full join關(guān)聯(lián)兩表,但這樣會導(dǎo)致表a數(shù)據(jù)大量重復(fù)(表a是主表,幾十個字段,表b三個字段)
2.用條件查出滿足條件的表a id,再對每個id分別查詢表b數(shù)據(jù),再通過程序合并,但效率仍然很低。
不知道各位有沒有更好的辦法??

回答
編輯回答
伴謊

postgre, 一對多用數(shù)組

WITH C AS (SELECT 商品ID,ARRAY_AGG(標(biāo)簽) AS 標(biāo)簽 FROM B GROUP BY 商品ID)
SELECT A.*, 標(biāo)簽 FROM A LEFT JOIN C USING(商品ID) WHERE 你的條件
2018年5月20日 00:23