select    pp.corder_bid  , po.pk_order   from  po_order_b   pob, po_order   po,po_invoice_b pp    where pob.fk_order = po.pk_order and  pp.corder_bid=pob.pk_order_b  

解决方案 »

  1.   


    select   p.corder_bid,  pob.pk_order_b, po.cendormangid,pob.nordernum ,pob.naccumarrvnum ,pob.nprice,pob.nmoney  
    from  po_order_b as pob 
    left join po_order as po on pob.fk_order = po.pk_order
    left join po_invoice_b as p on p.corder_bid = pob.pk_order_b
    005d6e1763f8418387d061e085dafb08 111 2.000 2.000 650.00 1300.00
    006af263f9044bcc994f2a9ef3b3e3ca 98 230.000 230.000 3.80 874.00
    00782a1038fd4dac9d1c54c7ff54eccd 113 10.000 10.000 17.00 170.00
    013bf6c945a4415697ce9d38c4dbac79 161 0.000 2.330 6500.00 0.00
    ============================
    第一列居然是NULL也查出来
    left join po_invoice_b as p on p.corder_bid = pob.pk_order_b
    根本没起作用
      

  2.   

    0 0a2ab1c9dd424d36a302440ac83f1b5e 148 2.000 2.000 9.00 18.00
    0 0a2ab1c9dd424d36a302440ac83f1b5e 148 2.000 2.000 9.00 18.00
    0 0a2ab1c9dd424d36a302440ac83f1b5e 148 2.000 2.000 9.00 18.00
    0 0a2ab1c9dd424d36a302440ac83f1b5e 148 2.000 2.000 9.00 18.00
    0 0a2ab1c9dd424d36a302440ac83f1b5e 148 2.000 2.000 9.00 18.00
    0 0a2ab1c9dd424d36a302440ac83f1b5e 148 2.000 2.000 9.00 18.00
    0 0a2ab1c9dd424d36a302440ac83f1b5e 148 2.000 2.000 9.00 18.00
    0 0a2ab1c9dd424d36a302440ac83f1b5e 148 2.000 2.000 9.00 18.00
    0 0a2ab1c9dd424d36a302440ac83f1b5e 148 2.000 2.000 9.00 18.00
    0 0a2ab1c9dd424d36a302440ac83f1b5e 148 2.000 2.000 9.00 18.00第一列是零的也查询出来了 
    left join po_invoice_b as p on p.corder_bid = pob.pk_order_b
    这个根本没起作用
      

  3.   

    你用的是LEFT JOIN, 当然会把NULL查出来。
      

  4.   

    那你把LEFT JOIN换成INNER JOIN吧。至于为什么,建议你可以搜索一下 LEFT JOIN 的说明。
      

  5.   


    #还是不行 下面这样写
    select   p.corder_bid,  pob.pk_order_b, po.cendormangid,pob.nordernum ,pob.naccumarrvnum ,pob.nprice,pob.nmoney  
    from  po_order_b as pob 
    INNER join po_order as po on pob.fk_order = po.pk_order
    INNER JOIN po_invoice_b as p on p.corder_bid = pob.pk_order_b
    #我描述下需求吧
    #po_order_b po_order  po_invoice_b  我要查询这个三个表中的记录
    #其中以po_order_b表为主,表中多少行就需要显示多少行
    #po_order_b 表中的pk_order和po_order表中fk_order相同
    #查询只有相等时显示的记录 显示其中的某个字段
    #再需要查询
    #po_order_b 表中的pk_order_b和po_invoice_b表中corder_bid相等
    #的记录po_invoice_b表中的某个字段
      

  6.   


    select pob.pk_order_b, po.cendormangid,pob.nordernum ,pob.naccumarrvnum ,pob.nprice,pob.nmoney 
    from  po_order_b as pob left join po_order as po on pob.fk_order = po.pk_order这样是2个表的联合查询没有问题了
    我现在想把查询出来的记录
    返回的字段pob.pk_order_b和po_invoice_b表中corder_bid字段相等时显示po_invoice_b表中num值
    没有就显示零  就这样
      

  7.   


    select p.corder_bid,pob.pk_order_b, po.cendormangid,pob.nordernum ,pob.naccumarrvnum ,pob.nprice,pob.nmoney  
    from  po_order_b as pob 
    left join po_order as po on pob.pk_order= po.fk_order
    left JOIN po_invoice_b as p on p.corder_bid = pob.pk_order_b
    and po
    这样不可以吗?
    楼主#po_order_b 表中的pk_order和po_order表中fk_order相同,这里描述怎么和你的on条件不一样?
      

  8.   

    p.corder_bid是INT型 忘记改VARchar型了