select t1.* from (select m.url,p.name,pi.color,s.name,it.price,p.grotime,o.state
from (((((order_ o join orderitem it on o.id = it.order_)
left join product p on p.id = it.product)
left join product_info pi on pi.product = it.product)
left join size_ s on s.id = it.size_)
left join media m on m.id = pi.media)
where o.group_ = 1 and o.user_ = 1 and o.state in (1,2,3) and rownum <=8 order by o.id asc) t1 错误意思  未明确的列 t1.* 这里不对。
什么原因,怎么改正。请教  等待

解决方案 »

  1.   

     select m.url,p.name,pi.color,s.name,it.price,p.grotime,o.state 
     from order_ o join orderitem it on o.id = it.order_ 
     left join product p on p.id = it.product
     left join product_info pi on pi.product = it.product
     left join size_ s on s.id = it.size_
     left join media m on m.id = pi.media 
     where o.group_ = 1 and o.user_ = 1 and o.state in (1,2,3) and rownum <=8 order by o.id asc
      

  2.   

    我外面是需要嵌套一下的。select n1.* from (select m.url,p.name,pi.color,s.name,it.price,p.grotime,o.state
    from order_ o join orderitem it on o.id = it.order_
    left join product p on p.id = it.product
    left join product_info pi on pi.product = it.product
    left join size_ s on s.id = it.size_
    left join media m on m.id = pi.media
    where o.group_ = 1 and o.user_ = 1 and o.state in (1,2,3) and rownum <=8 order by o.id) n1
    where rownum <= 3而且 我其他的地方也是这样用的,就这里说 不明确这个n1.* 
      

  3.   

    --去掉order by o.id asc
      

  4.   

    --或加上top 100 PERCENT
    select t1.* from 
    (select top 100 PERCENT
    m.url,p.name,pi.color,s.name,it.price,p.grotime,o.state
    from 
    (
    (
    (
    (
    (order_ o join orderitem it on o.id = it.order_)
    left join product p on p.id = it.product)
    left join product_info pi on pi.product = it.product)
    left join size_ s on s.id = it.size_)
    left join media m on m.id = pi.media)
    where o.group_ = 1 and o.user_ = 1 and o.state in (1,2,3) and rownum <=8 order by o.id asc) t1 
      

  5.   


    select * from (select m.url,p.name,pi.color,s.name,it.price,p.grotime,o.state 
    from (((((order_ o join orderitem it on o.id = it.order_) 
    left join product p on p.id = it.product) 
    left join product_info pi on pi.product = it.product) 
    left join size_ s on s.id = it.size_) 
    left join media m on m.id = pi.media) 
    where o.group_ = 1 and o.user_ = 1 and o.state in (1,2,3) and rownum <=8 order by o.id asc) t1 
      

  6.   


    --try:
    select m.url,p.name,pi.color,s.name,it.price,p.grotime,o.state 
    from order_ o join orderitem it on o.id = it.order_ 
    left join product p on p.id = it.product
    left join product_info pi on pi.product = it.product 
    left join size_ s on s.id = it.size_
    left join media m on m.id = pi.media
    where o.group_ = 1 and o.user_ = 1 and o.state in (1,2,3) and rownum <=8 order by o.id asc
      

  7.   

    oracle 不能top吧。。必须要这样写,t.* 否则不明确
      

  8.   


    SELECT  t1.* 
    FROM (
    SELECT m.url,p.[name],pi.color,s.[name],it.price,p.grotime,o.state,o.id
    FROM  order_ o JOIN  orderitem it 
    ON o.id = it.order_
    LEFT JOIN product p on p.id = it.product
    LEFT JOIN product_info pi on pi.product = it.product
    LEFT JOIN size_ s on s.id = it.size_
    LEFT JOIN  media m on m.id = pi.media
    WHERE  o.group_ = 1 
    AND o.user_ = 1 
    AND o.state in (1,2,3) 
    AND rownum <=8
    ) as t1
    ORDER BY id ASC
      

  9.   

    能不能说明下 select  t1.*  这里错(未明确的列) 是什么原因???再说明下,去掉外面的select t1.* from 是没有问题的。其他没有错的,我也尝试过了。
      

  10.   


    SELECT m.url,p.[name] as p_name,pi.color,s.[name] as s_name,it.price,p.grotime,o.state,o.id
      

  11.   

    select t1.* from (select m.url,p.name as p_name,pi.color,s.name as s_name,it.price,p.grotime,o.state 
    from (((((order_ o join orderitem it on o.id = it.order_) 
    left join product p on p.id = it.product) 
    left join product_info pi on pi.product = it.product) 
    left join size_ s on s.id = it.size_) 
    left join media m on m.id = pi.media) 
    where o.group_ = 1 and o.user_ = 1 and o.state in (1,2,3) and rownum <=8 order by o.id asc) t1