国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

mysql - SQL問個基礎例子,書上的,我怎么看都看不懂..誰幫我解釋一下第2個為什么和第1個一樣?

瀏覽:120日期:2022-06-21 18:50:51

問題描述

SELECT id, name, cidfrom shbookswhere cid=(SELECT cid FROM shbookswhere name= ’光榮與夢想’);

上面這個我完全看得懂,返回<光榮與夢想>的cid,然后用這個值作為條件,匹配整個表的cid;

SELECT b1.id, b1.name, b1.cidfrom shbooks b1, shbooks b2 where b1.cid=b2.cidand b2.name=’光榮與夢想’;

但是這個,條件是 b1.cid=b2.cid 的話,會返回整個表,為什么加上個 b2.name=’光榮與夢想’ 就能返回 和 光榮與夢想 相同cid 的別的書???

答案不在長,也不在語言是不是準確,只要讓我能明白怎么個邏輯就行了..謝謝了!

問題解答

回答1:

原始

b1.cid b1.name1 光榮與夢想2 另一本書1 夢想與光榮

條件b1.cid = b2.cid(從9個結果中過濾得到5個結果)只要理解為什么是9個結果,整個問題應該也沒有什么疑問了。

b1.cid b1.name b2.cid b2.name1 光榮與夢想 1 光榮與夢想1 光榮與夢想 1 夢想與光榮2 另一本書 2 另一本書1 夢想與光榮 1 夢想與光榮1 夢想與光榮 1 光榮與夢想

條件 b2.name=’光榮與夢想’就得到

b1.cid b1.name b2.cid b2.name1 光榮與夢想 1 光榮與夢想1 夢想與光榮 1 光榮與夢想

我就是提問的的人,這是我補充的!我給大家解釋解釋到底是怎么回事,其實邏輯就是自己把自己當倆表;然后算自己的的笛卡爾集,然后再用第二個條件篩選!回答2:

你的第一種寫法如果存在多條cid是不是就出錯了?你可以參考下面的寫法:

/*子查詢*/select id,name,cid from shbooks where cid in (select cid from shbooks where name=’’);--或者這種寫法select id,name,cid from shbooks outerquerywhere cid exists (select 1 from shbooks innerquery where outerquery.cid = innerquery.cid and innerquery.name=’’);

至于你的第二種寫法,你了解inner join嗎?你看看下面的寫法是不是更好懂些?

select id,name,cid from shbooks main inner join (select cid from shbooks where name = ’’) child on main.cid = child.cid; select id,name,cid from shbooks main inner join shbooks child on main.cid = child.cid where child.name = ’’;

最后問問,你都是按書上例子寫的?如果是,我建議最好不要看那本書了!

回答3:

條件是兩個啊大兄弟,b2.name=’光榮與夢想’ 同時 b1.cid = b2.cid

回答4:

看成兩個不同的表就行,這是自聯接

回答5:

@碎鏡 他的是正解,先笛卡爾集,然后進行篩選。這是是實現原理。不過一般這種語句SQL會自動優化。并不會真的先做出笛卡爾積然后進行篩選。

主站蜘蛛池模板: 日本苍井一级毛片 | 韩国在线精品福利视频在线观看 | 欧美一级高清视频在线播放 | 99精品视频在线免费观看 | 欧美一级视频在线观看 | 午夜国产视频 | 成人欧美一区二区三区视频 | 国产一级一片免费播放视频 | www.亚洲成人.com | 国产伦精品一区三区视频 | 日韩亚洲欧美一区噜噜噜 | 99久久www免费| 女初高中福利视频在线观看 | 国产区香蕉精品系列在线观看不卡 | 波多野结衣视频免费在线观看 | 亚洲综合日韩欧美一区二区三 | 免费国产成人高清视频网站 | 亚洲精品一区二区三区四区手机版 | 欧美大屁股精品毛片视频 | 香港三级做爰大爽视频 | 日韩高清一区二区 | 美女张开腿让男人桶的 视频 | 色悠久 | 久久高清一区二区三区 | 一级特黄aa大片欧美 | 一区二区三区在线播放视频 | 三级黄色免费看 | 久久综合精品不卡一区二区 | 99久久国产综合精品五月天 | 老司机精品影院一区二区三区 | 国产精品yjizz视频网一二区 | 日韩欧美在线一区二区三区 | 国产91网址 | 99国产精品高清一区二区二区 | 欧美最爽乱淫视频播放黑人 | 亚洲成a人片在线看 | swag国产精品一区二区 | 日韩欧美在线一区二区三区 | 久青草视频在线 | 九九视频在线观看视频23 | 久久久久久免费播放一级毛片 |