程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程解疑 >> select-【新人求解答】sql 自身連接問題

select-【新人求解答】sql 自身連接問題

編輯:編程解疑
【新人求解答】sql 自身連接問題

求年齡大於王波的學員姓名?
表格如下:

學生

學號 | 姓名 | 性別 | 年齡

9901 | 陳平 | 男 | 19

9902 | 王波 | 男 | 20

9903 | 張莉 | 女 | 21

教程示例代碼是:

Select s1.姓名,s1.年齡,s1.性別 from 學生 s1, 學生 s2 where s1.姓名='王波' and s1.年齡<s2.年齡

但是顯示結果是:

| 姓名 | 年齡 | 性別

1 | 王波 | 20 | 男

修改為
Select s1.姓名,s1.年齡,s1.性別 from 學生 s1, 學生 s2 where s2.姓名='王波' and s1.年齡>s2.年齡

能夠顯示正確結果,這是什麼原因?求解釋!!!

最佳回答:


你的第一句sql:Select s1.姓名,s1.年齡,s1.性別 from 學生 s1, 學生 s2 where s1.姓名='王波' and s1.年齡 至於你的第二句sql:Select s1.姓名,s1.年齡,s1.性別 from 學生 s1, 學生 s2 where s2.姓名='王波' and s1.年齡>s2.年齡 是正確的

你主要的問題是兩張表你沒搞清楚 拿哪張表裡面的'王波',如果你拿的是第一張表裡面的'王波'作比較,那麼你比較的就是第二張表,那麼你查詢的字段應該為第二張表中的字段,所以這也就是你第一句sql的問題。你的第二句sql 相當於前面一段話反過來,也就是拿第二張表中的'王波'作比較,查的是第一張表中符合條件的字段,所以select 後面應該是第一張表s1.字段

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved