SELECT a.* , b.start_time FROM tc_order a left join venue_tickets b ON a.order_id = b.order_id WHERE 
  b.ticket_id = (SELECT ticket_id FROM venue_tickets WHERE order_id = a.order_id ORDER BY start_time ASC LIMIT 1) AND 。WHERE order_id = a.order_id  这里不行的吗  
应该怎么写的?
谢谢 

解决方案 »

  1.   

    SELECT ticket_id FROM venue_tickets AS c WHERE c.order_id = a.order_id
      

  2.   


    好像 不行啊。  Error infos: Unknown column 'a.order_id' in 'where clause'
    Error sql: Select count(*) as dd From venue_tickets AS c WHERE c.order_id = a.order_id limit 0,1;
      

  3.   

    SELECT ticket_id FROM venue_tickets,tc_order  WHERE order_id = tc_order .order_id 
      

  4.   


    不行呀。  ticket_id 只存在于 表venue_tickets   表tc_order 和 表venue_tickets 的 order_id 是一对多关系用 b.ticket_id = (SELECT ticket_id FROM venue_tickets WHERE order_id = a.order_id ORDER BY start_time ASC LIMIT 1) 是为了只拿时间最小的一个
      

  5.   


    SELECT a.* , b.start_time FROM tc_order a left join venue_tickets b ON a.order_id = b.order_id ORDER BY start_time ASC LIMIT 1 
      

  6.   


    你这里错误的sql 不是你问题中要改的sql 
      

  7.   

    a.order_id 是外部传值进来的不,是的话直接用那个值
      

  8.   


    不是 外部的, 是ON 条件里的那个  表a的字段
      

  9.   


    ......WHERE b.ticket_id = (SELECT ticket_id FROM venue_tickets......这个地方的子查询所查的值是唯一的吗,如果是一个集合那要用 in 的吧。......WHERE b.ticket_id in (SELECT ticket_id FROM venue_tickets.....