SQL子查询-重复在哪里子句?

时间:2018-08-16 17:53:47

标签: sql sql-server

我知道这是一个101问题,但是是否需要在下面的子查询中的主查询中重复Where子句?这两种方法似乎都给我相同的方法,但是甚至需要吗?

  FROM account a
LEFT JOIN account pa ON a.parentaccountid = pa.accountid
JOIN customeraddress ca ON a.accountid = ca.parentid
JOIN optionsetmetadata osm ON osm.entityname = 'customeraddress'
    AND osm.optionsetname = 'addresstypecode'
    AND ca.addresstypecode = osm.[option]
LEFT JOIN sik_warehouse w ON a.sik_warehouseid = w.sik_warehouseid
LEFT JOIN sik_deliverymethods dm ON a.sik_deliverymethodid = dm.sik_deliverymethodsid

WHERE a.accountnumber IN ('58398',
    '4350',
    '5076',
    '4310',
    '15847')
    AND Addresstypecode = 2
    AND ca.jms_status = 100000000
    AND ca.addressnumber > (
        SELECT TOP 1 ca_sub1.addressnumber
        FROM customeraddress ca_sub1
        JOIN account a_sub1 ON ca_sub1.parentid = a_sub1.accountid
        AND ca_sub1.addressnumber > 2
        order by ca_sub1.addressnumber ASC 

1 个答案:

答案 0 :(得分:0)

如果要放置多个where条件,请添加内联视图。