1、在使用where進(jìn)行查詢的時候,對于查詢條件中的字段要指定歸屬表或者表別名。如下圖。
目前成都創(chuàng)新互聯(lián)公司已為上千多家的企業(yè)提供了網(wǎng)站建設(shè)、域名、雅安服務(wù)器托管、綿陽服務(wù)器托管、企業(yè)網(wǎng)站設(shè)計、汶上網(wǎng)站維護(hù)等服務(wù),公司將堅持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
2、如果改為using進(jìn)行查詢的話那就不用指定表別名,using關(guān)鍵字的使用規(guī)則就是等值連接而且連接的字段名稱和字段類型必須要一致。
3、如果在使用了using關(guān)鍵字進(jìn)行查詢的時候如果添加了表的別名或者是表名,則直接會報如下錯誤,對于using關(guān)鍵字指定的列名 在查詢中是不能使用表名或者表別名的。
4、并且還有一點需要注意的是using后只能接字段名不能使用 大于? 等于? 小于等符號進(jìn)行比對。
select e.empno, e.ename, d.deptno, d.dname
from emp e, dept d
where e.deptno = d.deptno;
在之前所使用的查詢操作之中,都是從一張表之中查詢出所需要的內(nèi)容,那么如果現(xiàn)在一個查詢語句需要顯示多張表的數(shù)據(jù),則就必須應(yīng)用到多表查詢的操作,而多表查詢的語法如下:
SELECT [DISTINCT] * | 字段 [別名] [,字段 [別名] ,…] FROM 表名稱 [別名], [表名稱 [別名] ,…] [WHERE 條件(S)] [ORDER BY 排序字段 [ASC|DESC] [,排序字段 [ASC|DESC] ,…]]。
擴(kuò)展資料:
Oracle 常用的關(guān)聯(lián)查詢:
Oracle外連接:
(1)左外連接 (左邊的表不加限制)。
(2)右外連接(右邊的表不加限制)。
(3)全外連接(左右兩表都不加限制)。
outer join則會返回每個滿足第一個(頂端)輸入與第二個(底端)輸入的聯(lián)接的行。它還返回任何在第二個輸入中沒有匹配行的第一個輸入中的行。
外連接分為三種: 左外連接,右外連接,全外連接。 對應(yīng)SQL:LEFT/RIGHT/FULL OUTER JOIN。 通常我們省略outer 這個關(guān)鍵字。 寫成:LEFT/RIGHT/FULL JOIN。
在左外連接和右外連接時都會以一張表為基表,該表的內(nèi)容會全部顯示,然后加上兩張表匹配的內(nèi)容。 如果基表的數(shù)據(jù)在另一張表沒有記錄。 那么在相關(guān)聯(lián)的結(jié)果集行中列顯示為空值(NULL)。
oracle中在WHERE條件里寫輸入:
select * from usermenu
left join sysuser on sysuser.yhdh=usermenu.yhdh
left join program on ?program.cxdh=usermenu.cxdh
即可關(guān)聯(lián)起來。
關(guān)聯(lián)也分為好幾種:
SELECT?*?FROM?TABLE1?A,TABLE2?B,TABLE3?C?WHERE?A.FIELD_KEY=B.FIELD_KEY?AND?B.FIELD_KEY=C.FIELD_KEY?(正常關(guān)聯(lián))
SELECT?*?FROM?TABLE1?A,TABLE2?B,TABLE3?C?WHERE?A.FIELD_KEY=B.FIELD_KEY(+)?AND?B.FIELD_KEY=C.FIELD_KEY(+)?(左關(guān)聯(lián))
SELECT?*?FROM?TABLE1?A,TABLE2?B,TABLE3?C?WHERE?A.FIELD_KEY(+)=B.FIELD_KEY?AND?B.FIELD_KEY(+)=C.FIELD_KEY?(右關(guān)聯(lián))
要把Oracle將三張表關(guān)聯(lián)起來時可以使用Oracle Database的指令,也就是Oracle數(shù)據(jù)庫的指令將其關(guān)聯(lián)。