我有三張桌子:users(id, account_balance)grocery(user_id, date, amount_paid)fishmarket(user_id, date, amount_paid)雙管齊下fishmarket和grocery對于同一個USER_ID,表可能有多個出現,但支付的日期和金額不同,或者對任何給定用戶都沒有。當我嘗試以下查詢時:SELECT
t1."id" AS "User ID",
t1.account_balance AS "Account Balance",
count(t2.user_id) AS "# of grocery visits",
count(t3.user_id) AS "# of fishmarket visits"FROM users t1LEFT OUTER JOIN grocery t2 ON (t2.user_id=t1."id")
LEFT OUTER JOIN fishmarket t3 ON (t3.user_id=t1."id") GROUP BY t1.account_balance,t1.idORDER BY t1.id它產生了一個不正確的結果:"1", "12", "12".但當我試圖LEFT JOIN只對一個表產生正確的結果。grocery或fishmarket訪問,這是"1", "3", "4".我在這里做錯什么了?我正在使用PostgreSQL9.1。
兩個sql左聯接會產生不正確的結果。
青春有我
2019-07-13 15:34:22