SQL学习笔记-join问题求解释.

    技术2025-10-08  5

     

    连接(join)

    假设有两个表,结构如下

     

    <<test_store>>表

    STORE_NAMESALESLos Angeles1500San Francisco300Boston700

     

    <<test_geo>>表

     

    REGION_NAMESTORE_NAMEEastBostonEastNew YorkWestLos AngelesWestSan Diego

    而我们要知道每一区 (region_name) 的营业额 (sales)。 Geo这个表格告诉我们每一区有哪些店,而 Store 告诉我们每一个店的营业额。若我们要知道每一区的营业额,我们需要将这两个不同表格中的资料串联起来.

     

    使用如下查询语句:

    SELECT A1.store_name, SUM(A2.Sales) SALES FROM test_geo A1, test_store A2 WHERE A1.store_name(+) = A2.store_name GROUP BY A1.store_name

     

    查询结果如下

    STORE_NAMESALES 300Los Angeles1500Boston700

    我们想要把<<test_store>>表中部满足条件的数据也显示出来,就需要在where条件的另一侧加上(+)号..如上图所示.

    条件是WHERE A1.store_name(+) = A2.store_name

    <<test_store>>表中的San Francisco并不满足where条件.所以STORE_NAME没有显示,但是sales却显示了出来..

     

    如果把条件改为:

    WHERE A1.store_name = A2.store_name (+)

    则结果为

    STORE_NAMESALESSan Diego New York Los Angeles1500Boston700

    这和上课时候就一样了..

    哪头有+号哪头的otherside的信息即使不满足条件也会显示.

    最新回复(0)