鐩綍
- 1銆佷粈涔堟槸瀛愭煡璇紵
- 2銆佽嚜鑱旀帴
- 3銆佽嚜鐒惰仈鎺?/a>
- 4銆佸閮ㄨ仈缁?/a>
1銆佷粈涔堟槸瀛愭煡璇紵
鍒楀嚭璁㈣喘鐗╁搧TNT2鐨勬墍鏈夊鎴凤細
select cust_id
from orders
where order_num IN (SELECT order_num
from orderitems
where prod_id = 'TNT2'
)
鏍煎紡鍖?code>SQL 鍖呭惈瀛愭煡璇㈢殑SELECT
璇彞闅句互闃呰鍜岃皟璇曪紝鐗瑰埆鏄畠浠緝涓哄鏉傛椂鏇存槸濡傛銆傚涓婃墍绀烘妸瀛愭煡璇㈠垎瑙d负澶氳骞朵笖閫傚綋鍦拌繘琛岀缉杩涳紝鑳芥瀬澶у湴绠鍖栧瓙鏌ヨ鐨勪娇鐢ㄣ?/p>
瀵逛簬鑳藉祵濂楃殑瀛愭煡璇㈢殑鏁扮洰娌℃湁闄愬埗锛屼笉杩囧湪瀹為檯浣跨敤鏃剁敱浜庢ц兘鐨勯檺鍒讹紝涓嶈兘宓屽澶鐨勫瓙鏌ヨ銆?/p>
娉?
鍒楀繀椤诲尮閰?鍦?code>WHERE瀛愬彞涓娇鐢ㄥ瓙鏌ヨ锛堝杩欓噷鎵绀猴級锛屽簲璇ヤ繚璇?code>SELECT璇彞鍏锋湁涓?code>WHERE瀛愬彞涓浉鍚屾暟鐩殑鍒椼傞氬父锛?br />
瀛愭煡璇㈠皢杩斿洖鍗曚釜鍒楀苟涓斾笌鍗曚釜鍒楀尮閰嶏紝浣嗗鏋滈渶瑕佷篃鍙互浣跨敤澶氫釜鍒椼?/p>
闄や簡瀛愭煡璇㈠彲浠ユ斁鍦?code>where 涓紝杩樺彲浠ユ斁鍒?code>select涓幓銆?/p>
鍋囧闇瑕佹樉绀?code>customers琛ㄤ腑姣忎釜瀹㈡埛鐨勮鍗曟绘暟銆?/p>
select cust_name, cust_state, (SELECT COUNT(*) FROM orders WHERE orders.cust_id = customers.cust_id) as orders
from customers
ORDER BY cust_name

mysql
鐨勮繍琛岃繃绋嬫槸鍏堟墽琛屼簡customers
涓煡鍑烘潵浜?code>cust_name锛?code>cust_state锛?code>cust_id锛岀劧鍚庢墽琛?娆″瓙鏌ヨ锛屾煡鍑烘潵浜嗙粨鏋溿?/p>
閫愭笎澧炲姞瀛愭煡璇㈡潵寤虹珛鏌ヨ 鐢ㄥ瓙鏌ヨ娴嬭瘯鍜岃皟璇曟煡璇㈠緢鏈夋妧宸фэ紝鐗瑰埆鏄湪杩欎簺璇彞鐨勫鏉傛т笉鏂鍔犵殑鎯呭喌涓嬫洿鏄姝ゃ傜敤瀛愭煡璇㈠缓绔嬶紙鍜屾祴璇曪級鏌ヨ鐨勬渶鍙潬鐨勬柟娉曟槸閫愭笎杩涜锛岃繖涓嶮ySQL澶勭悊瀹冧滑鐨勬柟娉曢潪甯哥浉鍚屻傞鍏堬紝寤虹珛鍜屾祴璇曟渶鍐呭眰鐨勬煡璇€傜劧鍚庯紝鐢ㄧ‖缂栫爜鏁版嵁寤虹珛鍜屾祴璇曞灞傛煡璇紝骞朵笖浠呭湪纭瀹冩甯稿悗鎵嶅祵鍏ュ瓙鏌ヨ銆傝繖鏃讹紝鍐嶆娴嬭瘯瀹冦傚浜庤澧炲姞鐨勬瘡涓煡璇紝閲嶅杩欎簺姝ラ銆傝繖鏍峰仛浠呯粰鏋勯犳煡璇㈠鍔犱簡涓鐐圭偣鏃堕棿锛屼絾鑺傜渷浜嗕互鍚庯紙鎵惧嚭鏌ヨ涓轰粈涔堜笉姝e父锛夌殑澶ч噺鏃堕棿锛屽苟涓旀瀬澶у湴鎻愰珮浜嗘煡璇竴寮濮嬪氨姝e父宸ヤ綔鐨勫彲鑳芥?br />
涓嬮潰浠嬬粛涓涓嬭仈缁?
SELECT vend_name,prod_name,prod_price
FROM vendors,products
WHERE vendors.vend_id=products.vend_id
ORDER BY vend_name, prod_name

娉?
瀹屽叏闄愬畾鍒楀悕 鍦ㄥ紩鐢ㄧ殑鍒楀彲鑳藉嚭鐜颁簩涔夋ф椂锛屽繀椤讳娇鐢ㄥ畬鍏ㄩ檺瀹氬垪鍚嶏紙鐢ㄤ竴涓偣鍒嗛殧鐨勮〃鍚嶅拰鍒楀悕锛夈傚鏋滃紩鐢ㄤ竴涓病鏈夌敤琛ㄥ悕闄愬埗鐨勫叿鏈変簩涔夋х殑鍒楀悕锛孧ySQL灏嗚繑鍥為敊璇?/p>
杩欓噷浣跨敤where 璇彞杩涜鑱旀帴鐨勪綔鐢?
鍒╃敤WHERE瀛愬彞寤虹珛鑱旂粨鍏崇郴浼间箮鏈夌偣濂囨紝浣嗗疄闄呬笂锛屾湁涓涓緢鍏呭垎鐨勭悊鐢便傝璁颁綇锛屽湪涓鏉ELECT璇彞涓仈缁撳嚑涓〃鏃讹紝鐩稿簲鐨勫叧绯绘槸鍦ㄨ繍琛屼腑鏋勯犵殑銆傚湪鏁版嵁搴撹〃鐨勫畾涔変腑涓嶅瓨鍦ㄨ兘鎸囩ずMySQL濡備綍瀵硅〃杩涜鑱旂粨鐨勪笢瑗裤備綘蹇呴』鑷繁鍋氳繖浠朵簨鎯呫傚湪鑱旂粨涓や釜琛ㄦ椂锛屼綘瀹為檯涓婂仛鐨勬槸灏嗙涓涓〃涓殑姣忎竴琛屼笌绗簩涓〃涓殑姣忎竴琛岄厤瀵广俉HERE瀛愬彞浣滀负杩囨护鏉′欢锛屽畠鍙寘鍚偅浜涘尮閰嶇粰瀹氭潯浠讹紙杩欓噷鏄仈缁撴潯浠讹級鐨勮銆傛病鏈塛HERE瀛愬彞锛岀涓涓〃涓殑姣忎釜琛屽皢涓庣浜屼釜琛ㄤ腑鐨勬瘡涓閰嶅锛岃屼笉绠″畠浠昏緫涓婃槸鍚﹀彲浠ラ厤鍦ㄤ竴璧枫?br />
娉?
绗涘崱鍎跨Н锛?code>cartesian product锛?鐢辨病鏈夎仈缁撴潯浠剁殑琛ㄥ叧绯昏繑鍥炵殑缁撴灉涓虹瑳鍗″効绉傛绱㈠嚭鐨勮鐨勬暟鐩皢鏄涓涓〃涓殑琛屾暟涔樹互绗簩涓〃涓殑琛屾暟銆傜洰鍓嶄负姝㈡墍鐢ㄧ殑鑱旂粨绉颁负绛夊艰仈缁擄紙equijoin
锛夛紝瀹冨熀浜庝袱涓〃涔嬮棿鐨勭浉绛夋祴璇曘傝繖绉嶈仈缁撲篃绉颁负鍐呴儴鑱旂粨銆傚叾瀹烇紝瀵逛簬杩欑鑱旂粨鍙互浣跨敤绋嶅井涓嶅悓鐨勮娉曟潵鏄庣‘鎸囧畾鑱旂粨鐨勭被鍨嬨?/p>
涓嬮潰鐨凷ELECT璇彞杩斿洖涓庡墠闈緥瀛愬畬鍏ㄧ浉鍚岀殑鏁版嵁锛?/strong>
SELECT vend_name,prod_name,prod_price
FROM vendors INNER JOIN products on vendors.vend_id = products.vend_id
ORDER BY vend_name, prod_name
浣跨敤鍝璇硶 ANSI SQL
瑙勮寖棣栭?code>INNER JOIN璇硶銆傛澶栵紝灏界浣跨敤WHERE
瀛愬彞瀹氫箟鑱旂粨鐨勭‘姣旇緝绠鍗曪紝浣嗘槸浣跨敤鏄庣‘鐨?br />
鑱旂粨璇硶鑳藉纭繚涓嶄細蹇樿鑱旂粨鏉′欢锛屾湁鏃跺欒繖鏍峰仛涔熻兘褰卞搷鎬ц兘銆?/p>
鎬ц兘鑰冭檻 MySQL
鍦ㄨ繍琛屾椂鍏宠仈鎸囧畾鐨勬瘡涓〃浠ュ鐞嗚仈缁撱傝繖绉嶅鐞嗗彲鑳芥槸闈炲父鑰楄垂璧勬簮鐨勶紝鍥犳搴旇浠旂粏锛屼笉瑕佽仈缁?br />
涓嶅繀瑕佺殑琛ㄣ傝仈缁撶殑琛ㄨ秺澶氾紝鎬ц兘涓嬮檷瓒婂帀瀹炽?/p>
澶氬仛瀹為獙 姝e鎵瑙侊紝涓烘墽琛屼换涓缁欏畾鐨凷QL鎿嶄綔锛屼竴鑸瓨鍦ㄤ笉姝竴绉嶆柟娉曘傚緢灏戞湁缁濆姝g‘鎴栫粷瀵归敊璇殑鏂规硶銆傛ц兘鍙兘
浼氬彈鎿嶄綔绫诲瀷銆佽〃涓暟鎹噺銆佹槸鍚﹀瓨鍦ㄧ储寮曟垨閿互鍙婂叾浠栦竴浜涙潯浠剁殑褰卞搷銆傚洜姝わ紝鏈夊繀瑕佸涓嶅悓鐨勯夋嫨鏈哄埗杩涜瀹為獙锛屼互鎵?br />
鍑烘渶閫傚悎鍏蜂綋鎯呭喌鐨勬柟娉曘傛垜浠悓鏍峰彲浠ヤ娇鐢ㄥ寮犺〃鐨勮仈鎺ワ紝浣嗘槸鏈変竴涓棶棰橈紝鍥犱负琛ㄥ悕澶氫釜鍦版柟浣跨敤锛屾晠鑰岃〃鍚嶅緢闀匡紝閭d箞鍙互浣跨敤琛ㄧ殑鍒悕銆?/p>
濡傦細

涓嬮潰浠嬬粛涓涓嬪嚑绉嶇壒娈婄殑杩炴帴銆?/p>
2銆佽嚜鑱旀帴
鍋囧浣犲彂鐜版煇鐗╁搧锛堝叾ID
涓?code>DTNTR锛夊瓨鍦ㄩ棶棰橈紝鍥犳鎯崇煡閬撶敓浜ц鐗╁搧鐨勪緵搴斿晢鐢熶骇鐨勫叾浠栫墿鍝佹槸鍚︿篃瀛樺湪杩欎簺闂銆傛鏌ヨ瑕佹眰棣栧厛鎵惧埌鐢熶骇ID
涓?code>DTNTR鐨勭墿鍝佺殑渚涘簲鍟嗭紝鐒跺悗鎵惧嚭杩欎釜渚涘簲鍟嗙敓浜х殑鍏朵粬鐗╁搧銆?br />
涓嬮潰鏄В鍐虫闂鐨勪竴绉嶆柟娉曪細
浣犲彲鑳戒娇鐢ㄥ瓙鏌ヨ锛岃繖鏍峰仛:
select prod_id,prod_name
from products
where vend_id = (SELECT vend_id from products WHERE prod_id ='DTNTR')

鍚屾牱鍙互浣跨敤鑷仈鎺ャ?/p>
select t1.prod_id,t2.prod_name
from products t1, products t2
where t1.vend_id = t2.vend_id and t1.prod_id='DTNTR'

鐢ㄨ嚜鑱旂粨鑰屼笉鐢ㄥ瓙鏌ヨ 鑷仈缁撻氬父浣滀负澶栭儴璇彞鐢ㄦ潵鏇夸唬浠庣浉鍚岃〃涓绱㈡暟鎹椂浣跨敤鐨勫瓙鏌ヨ璇彞銆傝櫧鐒舵渶缁堢殑缁撴灉鏄?br />
鐩稿悓鐨勶紝浣嗘湁鏃跺欏鐞嗚仈缁撹繙姣斿鐞嗗瓙鏌ヨ蹇緱澶氥傚簲璇ヨ瘯涓涓嬩袱绉嶆柟娉曪紝浠ョ‘瀹氬摢涓绉嶇殑鎬ц兘鏇村ソ銆?/p>
3銆佽嚜鐒惰仈鎺?/h2>
鏃犺浣曟椂瀵硅〃杩涜鑱旂粨锛屽簲璇ヨ嚦灏戞湁涓涓垪鍑虹幇鍦ㄤ笉姝竴涓〃涓紙琚仈缁撶殑鍒楋級銆傛爣鍑嗙殑鑱旂粨锛堝墠涓绔犱腑浠嬬粛鐨勫唴閮ㄨ仈缁擄級杩斿洖鎵鏈夋暟鎹紝鐢氳嚦鐩稿悓鐨勫垪澶氭鍑虹幇銆傝嚜鐒惰仈缁撴帓闄ゅ娆″嚭鐜帮紝浣挎瘡涓垪鍙繑鍥炰竴娆°?/p>
鎬庢牱瀹屾垚杩欓」宸ヤ綔鍛紵绛旀鏄紝绯荤粺涓嶅畬鎴愯繖椤瑰伐浣滐紝鐢变綘鑷繁瀹屾垚瀹冦傝嚜鐒惰仈缁撴槸杩欐牱涓绉嶈仈缁擄紝鍏朵腑浣犲彧鑳介夋嫨閭d簺鍞竴鐨勫垪銆傝繖涓鑸槸閫氳繃瀵硅〃浣跨敤閫氶厤绗︼紙SELECT *
锛夊鎵鏈夊叾浠栬〃鐨勫垪浣跨敤鏄庣‘鐨勫瓙闆嗘潵瀹屾垚鐨勩?/p>

4銆佸閮ㄨ仈缁?/h2>
璁稿鑱旂粨灏嗕竴涓〃涓殑琛屼笌鍙︿竴涓〃涓殑琛岀浉鍏宠仈銆備絾鏈夋椂鍊欎細闇瑕佸寘鍚病鏈夊叧鑱旇鐨勯偅浜涜銆備緥濡傦紝鍙?strong>鑳介渶瑕佷娇鐢ㄨ仈缁撴潵瀹屾垚浠ヤ笅宸ヤ綔锛?/strong>
姣斿锛?/strong>瀵规瘡涓鎴蜂笅浜嗗灏戣鍗曡繘琛岃鏁帮紝鍖呮嫭閭d簺鑷充粖灏氭湭涓嬭鍗曠殑瀹㈡埛锛?/p>
SELECT customers.cust_id,order_num
from customers LEFT OUTER JOIN orders on customers.cust_id = orders.cust_id

杩欐潯SELECT
璇彞浣跨敤浜嗗叧閿瓧OUTER JOIN
鏉ユ寚瀹氳仈缁撶殑绫诲瀷锛堣屼笉鏄湪WHERE
瀛愬彞涓寚瀹氾級銆備絾鏄紝涓庡唴閮ㄨ仈缁撳叧鑱斾袱涓〃涓殑琛屼笉鍚岀殑鏄紝澶栭儴鑱旂粨杩樺寘鎷病鏈夊叧鑱旇鐨勮銆傚湪浣跨敤OUTER JOIN
璇硶鏃讹紝蹇呴』浣跨敤RIGHT
鎴?code>LEFT鍏抽敭瀛?br />
鎸囧畾鍖呮嫭鍏舵墍鏈夎鐨勮〃锛?code>RIGHT鎸囧嚭鐨勬槸OUTER JOIN
鍙宠竟鐨勮〃锛岃孡EFT鎸囧嚭鐨勬槸OUTER JOIN
宸﹁竟鐨勮〃锛夈?/p>
浣跨敤甯﹁仛闆嗗嚱鏁扮殑鑱旂粨:
瑕佹绱㈡墍鏈夊鎴峰強姣忎釜瀹㈡埛鎵涓嬬殑璁㈠崟鏁?
SELECT customers.cust_id, COUNT(order_num) as num
from customers LEFT OUTER JOIN orders on customers.cust_id = orders.cust_id
GROUP BY cust_id
娉ㄦ剰鐐?
1.娉ㄦ剰鎵浣跨敤鐨勮仈缁撶被鍨嬨備竴鑸垜浠娇鐢ㄥ唴閮ㄨ仈缁擄紝浣嗕娇鐢ㄥ閮ㄨ仈缁撲篃鏄湁鏁堢殑銆?br />
2.淇濊瘉浣跨敤姝g‘鐨勮仈缁撴潯浠讹紝鍚﹀垯灏嗚繑鍥炰笉姝g‘鐨勬暟鎹?br />
3.搴旇鎬绘槸鎻愪緵鑱旂粨鏉′欢锛屽惁鍒欎細寰楀嚭绗涘崱鍎跨Н銆?br />
4.鍦ㄤ竴涓仈缁撲腑鍙互鍖呭惈澶氫釜琛紝鐢氳嚦瀵逛簬姣忎釜鑱旂粨鍙互閲囩敤涓嶅悓鐨勮仈缁撶被鍨嬨傝櫧鐒惰繖鏍峰仛鏄悎娉曠殑锛屼竴鑸篃寰堟湁鐢紝浣嗗簲璇ュ湪涓璧锋祴璇曞畠浠墠锛屽垎鍒祴璇曟瘡涓仈缁撱傝繖灏嗕娇鏁呴殰鎺掗櫎鏇翠负绠鍗曘?/p>
鍒版杩欑瘒鍏充簬mysql 瀛愭煡璇笌杩炴帴琛ㄨ鎯呯殑鏂囩珷灏变粙缁嶅埌杩欎簡,鏇村鐩稿叧mysql 瀛愭煡璇笌杩炴帴琛ㄥ唴瀹硅鎼滅储鑴氭湰涔嬪浠ュ墠鐨勬枃绔犳垨缁х画娴忚涓嬮潰鐨勭浉鍏虫枃绔犲笇鏈涘ぇ瀹朵互鍚庡澶氭敮鎸佽剼鏈箣瀹讹紒