Ñ¡Ôñÿλ¿Í»§×îÐµĶ©µ¥

January 7th, 2009
jsrk.com edit
¡¡¡¡
¡¡¡¡ÕâÀï×î´óµÄÎÊÌâÊÇÏ໥¹ØÁª×Ó²éѯ£¨correlated subqueries£©£¬Ï໥¹ØÁª×Ó²éѯÓëǶÌ××Ó²éѯÓкÜÃ÷ÏÔµÄÇø±ð¡£ÔÚǶÌ××Ó²éѯÖУ¬ÄÚ²¿²éѯִֻÐÐÒ»´Î²¢·µ»ØËüµÄÖµ¸øÍⲿ²éѯ£¬È»ºóÍⲿ²éѯÔÚËüµÄ´¦ÀíÖÐʹÓÃÄÚ²¿²éѯ·µ»Ø¸øËüµÄÖµ¡£¶øÔÚÏ໥¹ØÁª×Ó²éѯÖУ¬¶ÔÓÚÍⲿ²éѯ·µ»ØµÄÿһÐÐÊý¾Ý£¬ÄÚ²¿²éѯ¶¼ÒªÖ´ÐÐÒ»´Î¡£ÁíÍ⣬ÔÚÏ໥¹ØÁª×Ó²éѯÖÐÊÇÐÅÏ¢Á÷ÊÇË«ÏòµÄ¡£Íⲿ²éѯµÄÿÐÐÊý¾Ý´«µÝÒ»¸öÖµ¸ø×Ó²éѯ£¬È»ºó×Ó²éѯΪÿһÐÐÊý¾ÝÖ´ÐÐÒ»´Î²¢·µ»ØËüµÄ¼Ç¼¡£È»ºó£¬Íⲿ²éѯ¸ù¾Ý·µ»ØµÄ¼Ç¼×ö³ö¾ö²ß¡£
¡¡¡¡
¡¡¡¡ÏÂÃæÎÒÃÇʹÓÃNorthwind Êý¾Ý¿â×÷Ϊһ¸öÀý×Ó¡£ÎÒÃÇÐèÒªÁгöÓÉÿλ¿Í»§Ï´ïµÄ×îÐµĶ©µ¥¡£
¡¡¡¡
¡¡¡¡SELECT o1.CustomerID, o1.OrderID, o1.OrderDate
¡¡¡¡FROM Orders o1
¡¡¡¡WHERE o1.OrderDate =
¡¡¡¡(SELECT Max(OrderDate)
¡¡¡¡FROM Orders o2
¡¡¡¡WHERE o2.CustomerID = o1.CustomerID)
¡¡¡¡
¡¡¡¡¶ÔÓÚÍⲿ²éѯ·µ»ØµÄÿÐÐÊý¾Ý£¬ÄÚ²¿²éѯ¶¼»áÖ´ÐУ¬Ìõ¼þÊÇÏÞÖÆÆä½á¹û¼¯ÓëCustomerIDÆ¥Åä¡£Max() µ÷Óý«½á¹û¼¯ÏÞÖÆÎª¸ÐÐËȤµÄÒ»ÐÐÊý¾Ý¡£
¡¡¡¡
¡¡¡¡Èç¹ûÓÐ500λ¿Í»§Ï´ïÁ˶©µ¥£¬ÄÚ²¿²éѯ½«Ö´ÐÐ500´Î¡ª¡ªÃ¿¸öCustomerIDÖ´ÐÐÒ»´Î¡£ÏÖÔÚÎÒÃÇÒѾÓÐÁ˴𰸣º·µ»Ø90ÐÐÊý¾Ý£¬Ò²¾ÍÊÇ˵Õâ90ÌõÊý¾ÝÖÐÿÌõÊý¾Ý¶¼´ú±íһλ¿Í»§Ï´ïÁËÒ»¸ö¶©µ¥¡£
¡¡¡¡
¡¡¡¡Äã¿ÉÒÔºÜÈÝÒ׵ضÔÕâ¸ö²éѯ½øÐÐÀ©Õ¹¡£ÀýÈ磬Äã¿ÉÄÜÏë²éѯÿ¸ö¿Í»§Ëù϶©µ¥µÄ×îÐÂÁ½¸ö¶©µ¥¡£ÔÚÕâÖÖÇé¿öÏ£¬ÐèÒª½«ÄÚ²¿²éѯ¸ÄΪÒÔÏÂÕâÖÖÐÎʽ£º
¡¡¡¡
¡¡¡¡SELECT o1.CustomerID, o1.OrderID, o1.OrderDate
¡¡¡¡FROM Orders o1
¡¡¡¡WHERE o1.OrderDate IN(
¡¡¡¡SELECT TOP 2 o2.OrderDate
¡¡¡¡FROM Orders o2
¡¡¡¡WHERE o2.CustomerID = o1.CustomerID)
¡¡¡¡ORDER BY CustomerID
¡¡¡¡
¡¡¡¡Äã¿ÉÒÔÒÔ²»Í¬·½Ê½ÓÅ»¯Õâ¸öÀý×Ó£¬ÒÔ±ÜÃ⿪ÏúºÜ´óµÄ IN() ν´Ê¡£
¡¡¡¡
¡¡¡¡ÒÔÎҵľÑéÀ´¿´£¬ºÜ¶à¿ª·¢ÈËÔ±ÔÚѧϰÍêÏ໥¹ØÁª×Ó²éѯ֮ºóºÜ¿ì¾Í»áÍü¼ÇÆä¸ÅÄî¡£ÕâÕæµÄºÜÈÃÈ˸е½Òź¶£¬ÒòΪÏ໥¹ØÁª×Ó²éѯ¿ÉÒԺܼòµ¥ºÜÓÅÑŵػشðÄѶȺܴóµÄÎÊÌâ¡£
¡¡¡¡
¡¡¡¡ÎÒµÄÒâ¼ûÊÇÕâ¸öÓï·¨¿ÉÐУ¬²¢ÇÒÓÃÒ»¸ö SQL Óï¾ä¾Í¿ÉÒÔ²éѯ³öÆÚÍûµÄ½á¹û¡£ÕâʹÎÒÏëµ½ÁËһλ¿ª·¢¾Àí·´¸´¸úÎÒ˵µÄÒ»¾ä»°£º¡°µÚÒ»¸ö°æ±¾ÊÇʹÆäÄܹ»ÔËÐУ¬µÚ¶þ¸ö°æ±¾ÊÇʹÆäÄܹ»¸ü¿ìµØÔËÐС£¡±
#If you have any other info about this subject , Please add it free.# |