mysql - oracle 多表查詢問題-笛卡兒積過濾
問題描述
問題如下:
查詢出現笛卡兒積過濾的問題 例子: A B C D E Q表
select e.name, e.age, e.phone, q.something from a a, b b, c c, d d, e e, q q where a.id = ’zhejiushiyige id’ and b.id = a.bid and c.id = b.cid and d.id = c.did and e.id = d.eid and q.aid = a.id
就是表e是從a開始一級一級比較下來的,最終得到的e的結果是正確的,但是q的結果會出現兩次,并且q只跟a有關聯,請問怎么查詢才能解決這個問題呢?
問題解答
回答1:q表和a表是一對多的關系,如果q表的結果只想出一條,可以在關聯前先把q表按照aid字段進行匯總,保證每個aid只有一條,如:
select e.name, e.age, e.phone, q.something from a a, b b, c c, d d, e e, (select aid, max(something)) from q group by aid) table_q where a.id = ’zhejiushiyige id’ and b.id = a.bid and c.id = b.cid and d.id = c.did and e.id = d.eid and table_q.aid = a.id
相關文章:
1. Python處理Dict生成json2. python2.7 - python 正則前瞻 后瞻 無法匹配到正確的內容3. mysql - Sql union 操作4. (python)關于如何做到按win+R再輸入文件文件名就可以運行?5. android - WebView加載天貓等購物網頁出問題?6. 急急急!!!求大神解答網站評論問題,有大神幫幫小弟嗎7. python - 請問這兩個地方是為什么呢?8. 想練支付寶對接和微信支付對接開發(Java),好像個人不可以,怎么弄個企業的9. javascript - 按鈕鏈接到另一個網址 怎么通過百度統計計算按鈕的點擊數量10. 大家都用什么工具管理mysql數據庫?
