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的os.listdir在獲取文件列表時的順序問題2. 這是什么情況???3. 統計 - MYSQL版本問題導致SQL語法錯誤!unknow column ’SQLSTR’4. java - svn導下來的項目,web-inf下怎么沒有lib文件呀?5. docker start -a dockername 老是卡住,什么情況?6. node.js - 關于你不知道的JavaScript上一書介紹的行為委托7. javascript - 想問下百分比進度條實現原理以及這種布局怎么實現,還有賽馬時背景跟著動的原理?8. python - Pycharm的Debug用不了9. 有哪些將html5語義化標簽運用到極致的站點?10. javascript - 這是什么插件能把能把cli里面的webpack打包信息格式化?
