亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

兩個sql左聯接會產生不正確的結果。

兩個sql左聯接會產生不正確的結果。

青春有我 2019-07-13 15:34:22
我有三張桌子: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。
查看完整描述

3 回答

?
海綿寶寶撒

TA貢獻1809條經驗 獲得超8個贊

這是因為當用戶表連接到雜貨店表時,有3條記錄匹配。然后,這三項記錄中的每一項都與魚市的4項記錄相匹配,產生了12項記錄。您需要子查詢才能得到所要查找的內容。


查看完整回答
反對 回復 2019-07-13
  • 3 回答
  • 0 關注
  • 481 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號