SQL SubqueryµÄÓ÷¨
ÎÒÃÇ¿ÉÒÔÔÚÒ»¸ö SQL Óï¾äÖзÅÈëÁíÒ»¸ö SQL Óï¾ä¡£µ±ÎÒÃÇÔÚ WHERE ×Ó¾ä»ò WHERE ×Ó¾ä»ò HAVING ×Ó¾äÖвåÈëÁíÒ»¸ö SQL Óï¾äʱ£¬ÎÒÃǾÍÓÐÒ»¸ö subquery µÄ¼Ü¹¹¡£ Subquery µÄ×÷ÓÃÊÇÊ²Ã´ÄØ£¿µÚÒ»£¬Ëü¿ÉÒÔ±»ÓÃÀ´Á¬½Ó±í¸ñ¡£ÁíÍ⣬ÓеÄʱºò subquery ÊÇΨһÄܹ»Á¬½ÓÁ½¸ö±í¸ñµÄ·½Ê½¡£
Subquery µÄÓï·¨ÈçÏ£º
SELECT "À¸Î»1"
from "±í¸ñ"
WHERE "À¸Î»2" [±È½ÏÔËËãËØ]
(SELECT "À¸Î»1"
from "±í¸ñ"
WHERE [Ìõ¼þ])
[±È½ÏÔËËãËØ] ¿ÉÒÔÊÇÏàµÈµÄÔËËãËØ£¬ÀýÈç =, >, <, >=, <=. ÕâÒ²¿ÉÒÔÊÇÒ»¸ö¶ÔÎÄ×ÖµÄÔËËãËØ£¬ÀýÈç "LIKE."
ÎÒÃǾÍÓøոÕÔÚ²ûÊö SQL Á¬½ÓʱÓùýµÄÀý×Ó£º
Store_Information ±í¸ñ
store_name
Sales
Date
Los Angeles
$1500
Jan-05-1999
San Diego
$250
Jan-07-1999
Los Angeles
$300
Jan-08-1999
Boston
$700
Jan-08-1999
Geography ±í¸ñ
region_name
store_name
East
Boston
East
New York
West
Los Angeles
West
San Diego
ÎÒÃÇÒªÔËÓà subquery À´ÕÒ³öËùÓÐÔÚÎ÷²¿µÄµêµÄÓªÒµ¶î¡£ÎÒÃÇ¿ÉÒÔÓÃÏÂÃæµÄ SQL À´´ïµ½ÎÒÃǵÄÄ¿µÄ£º
SELECT SUM(Sales) from Store_Information
WHERE Store_name IN
(SELECT store_name from Geography
WHERE region_name = 'West')
½á¹û:
SUM(Sales)
2050
ÔÚÕâ¸öÀý×ÓÖУ¬ÎÒÃDz¢Ã»ÓÐÖ±½Ó½«Á½¸ö±í¸ñÁ¬½ÓÆðÀ´£¬È»ºóÓÉ´ËÖ±½ÓËã³öÿһ¼äÎ÷ÇøµêÃæµÄÓªÒµ¶î¡£ÎÒÃÇ×öµÄÊÇÏÈÕÒ³öÄÄЩµêÊÇÔÚÎ÷ÇøµÄ£¬È»ºóÔÙËã³öÕâЩµêµÄÓªÒµ¶î×ܹ²ÊǶàÉÙ¡£
Ïà¹ØÎĵµ£º
Ò»¡¢SQLÓïÑÔÖ÷Òª×é³É²¿·Ö ¶þ¡¢DDL ˵Ã÷£ººóÐøµÄËùÓвÙ×÷Õë¶Ôcreate table Öн¨µÄÈýÕÅ±í ¢Ùcreate table
student񡜧 1 Create Table Student 2 ( 3 ......
IN Õâ¸öÖ¸Áî¿ÉÒÔÈÃÎÒÃÇÒÀÕÕÒ»»òÊý¸ö²»Á¬Ðø (discrete) µÄÖµµÄÏÞÖÆÖ®ÄÚ×¥³öÊý¾Ý¿âÖеÄÖµ£¬¶ø BETWEEN ÔòÊÇÈÃÎÒÃÇ¿ÉÒÔÔËÓÃÒ»¸ö·¶Î§ (range) ÄÚ×¥³öÊý¾Ý¿âÖеÄÖµ¡£BETWEENÕâ¸ö×Ó¾äµÄÓï·¨ÈçÏ£º
SELECT "À¸Î»Ãû"
from " ±í¸ñÃû"
WHERE "À¸Î»Ãû" BETWEEN 'ÖµÒ»' AND 'Öµ¶þ'
Õ⽫ѡ³öÀ¸Î»Öµ°üº¬ÔÚÖµÒ»¼°Öµ¶þÖ®¼äµÄÿһ±Ê× ......
µ½Ä¿Ç°ÎªÖ¹£¬ÎÒÃÇÒÑѧµ½ÈçºÎ½åÓÉ SELECT ¼° WHEREÕâÁ½¸öÖ¸Á×ÊÁÏÓɱí¸ñÖÐ×¥³ö¡£²»¹ýÎÒÃÇÉÐδÌáµ½ÕâЩ×ÊÁÏÒªÈçºÎÅÅÁС£ÕâÆäʵÊÇÒ»¸öºÜÖØÒªµÄÎÊÌâ¡£ÊÂʵÉÏ£¬ÎÒÃǾ³£ÐèÒªÄܹ»½«×¥³öµÄ×ÊÁÏ×öÒ»¸öÓÐϵͳµÄÏÔʾ¡£Õâ¿ÉÄÜÊÇÓÉСÍù´ó (ascending) »òÊÇÓÉ´óÍùС(descending)¡£ÔÚÕâÖÖÇé¿öÏ£¬ÎÒÃǾͿÉÒÔÔËÓà ORDER BYÕâ¸öÖ¸ÁîÀ´´ïµ½ ......
ÎÒÃÇÏÖÔڻص½º¯ÊýÉÏ¡£¼ÇµÃÎÒÃÇÓà SUM Õâ¸öÖ¸ÁîÀ´Ëã³öËùÓÐµÄ Sales (ÓªÒµ¶î)°É£¡Èç¹ûÎÒÃǵÄÐèÇó±ä³ÉÊÇÒªËã³öÿһ¼äµê (store_name) µÄÓªÒµ¶î (sales)£¬ÄÇÔõô°ìÄØ£¿ÔÚÕâ¸öÇé¿öÏ£¬ÎÒÃÇÒª×öµ½Á½¼þÊ£ºµÚÒ»£¬ÎÒÃǶÔÓÚ store_name ¼° Sales ÕâÁ½¸öÀ¸Î»¶¼ÒªÑ¡³ö¡£µÚ¶þ£¬ÎÒÃÇÐèҪȷÈÏËùÓÐµÄ sales ¶¼ÒªÒÀÕÕ¸÷¸ö store_name À´·Ö¿ª ......
ÄÇÎÒÃÇÈçºÎ¶Ôº¯Êý²úÉúµÄÖµÀ´É趨Ìõ¼þÄØ£¿¾ÙÀýÀ´Ëµ£¬ÎÒÃÇ¿ÉÄÜÖ»ÐèÒªÖªµÀÄÄЩµêµÄÓªÒµ¶îÓг¬¹ý $1,500¡£ÔÚÕâ¸öÇé¿öÏ£¬ÎÒÃDz»ÄÜʹÓà WHERE µÄÖ¸Áî¡£ÄÇÒªÔõô°ìÄØ£¿ºÜÐÒÔ˵أ¬SQL ÓÐÌṩһ¸ö HAVING µÄÖ¸Á¶øÎÒÃǾͿÉÒÔÓÃÕâ¸öÖ¸ÁîÀ´´ïµ½Õâ¸öÄ¿±ê¡£ HAVING ×Ó¾äͨ³£ÊÇÔÚÒ»¸ö SQL ¾ä×ÓµÄ×îºó¡£Ò»¸öº¬ÓÐ HAVING ×Ó¾äµÄ SQL ²¢²» ......