我用多条语句表达一下.
select  ZID,NAME,ATRA from daili where uid<>0 order by id desc
这是第一条语句.从里面取一个ZID做为下一个语句的条件.
select  * from zhaoshang where id="&ZID
如果有记录就把它放在第一个查询的后面.如果没有输出"无对应记录"放在第一个查询的后面.
如何所上面的两个语句合并成一个语句?高手请指教.

解决方案 »

  1.   

    select  * from zhaoshang where id in (select  ZID,NAME,ATRA from daili where uid <> 0 order by id desc )
    或者用联合查询的方法
      

  2.   

    select  * from zhaoshang where id in (select  ZID from daili where uid <> 0 order by id desc )
      

  3.   


    select * from zhaoshang where id in (select ZID,NAME,ATRA from daili where uid<>0 order by id desc)
      

  4.   

    select  * from zhaoshang zs where id in (select  ZID from daili where uid <> 0 order by id desc )
      

  5.   

    select  ZID,NAME,ATRA,isnull(zhaoshang.id,'无对应记录'),zhaoshang.* from daili left join zhaoshang 
    on
    daili.ZID = zhaoshang.id
    where
    daili.uid <> 0 order by id desc 
    ---------------------------------
    关键是你的需求:“如果有记录就把它放在第一个查询的后面.如果没有输出"无对应记录"放在第一个查询的后面. ” 
    ---------------------------------
    这句话确实很难理解。不晓得我写的SQL是否为楼主要的。。
      

  6.   


    if exists (select * from zhaoshang)
    select  * from zhaoshang where id in (select  ZID from daili where uid  <>  0 order by id desc )
    else
    print 'error'
      

  7.   

    我把想要的效果写一下.
    表DAILI
    ZID  PRODUCT   
    1      新产品1
    2      新产品2
    3      新产品3
    表ZHAOSHANG
    ID     DANWEI
    3       ADSS
    4       TTST
    想要的结果
    ZID   PRODUCT   ID   DANWEI
    1      新产品1         无记录
    2      新产品2         无记录
    3      新产品3    3    ADSS
      

  8.   


    SELECT a.ZID,a.PRODUCT,b.ID,b.DANWEI FROM DAILI a LEFT JOIN ZHAOSHANG b ON a.ZID=b.ID
      

  9.   

    SELECT a.ZID,a.PRODUCT,b.ID,b.DANWEI FROM DAILI a,ZHAOSHANG b where a.ZID=b.ID
      

  10.   

    select 
    ZID,
    PRODUCT, 
    ID, 
    DANWEI = isNull(DANWEI,'无记录') 
    from 
    zhaoshang z 
    right JOIN 
    daili d 
    on 
    d.ZID = z.ID 
    where exists
    (
    select ZID from daili where zid <> 0 and ZID = z.ID
    )
      

  11.   

    12 的不行吧只能产生一条记录那样!!!
    11楼应该行,没试过就LEFT JOIN不大懂中午看看相关资料去
      

  12.   

    不好意思,应该是这个,把zid改成count(1)
    select 
    ZID,
    PRODUCT, 
    ID, 
    DANWEI = isNull(DANWEI,'无记录') 
    from 
    zhaoshang z 
    right JOIN 
    daili d 
    on 
    d.ZID = z.ID 
    where exists
    (
    select count(1) from daili where zid <> 0 and ZID = z.ID
    )
      

  13.   

    select  * from zhaoshang where id in (select  ZID from daili where uid  <>  0 order by id desc )
      

  14.   

    理解错了,可以不需要下面的exists,使用了右联已经达到了,根据一个表的ID获取另一个表中数据的目的,而且需要显示出没有关系到的行。
    select 
    ZID,
    PRODUCT, 
    ID, 
    DANWEI = isNull(DANWEI,'无记录') 
    from 
    zhaoshang z 
    right JOIN 
    daili d 
    on 
    d.ZID = z.ID