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 这里不行的吗
应该怎么写的?
谢谢
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 这里不行的吗
应该怎么写的?
谢谢
好像 不行啊。 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;
不行呀。 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) 是为了只拿时间最小的一个
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
你这里错误的sql 不是你问题中要改的sql
不是 外部的, 是ON 条件里的那个 表a的字段
......WHERE b.ticket_id = (SELECT ticket_id FROM venue_tickets......这个地方的子查询所查的值是唯一的吗,如果是一个集合那要用 in 的吧。......WHERE b.ticket_id in (SELECT ticket_id FROM venue_tickets.....