如何加入MySQL 3表来过滤正确的结果

时间:2014-05-02 06:46:32

标签: mysql

我为filter resualt编写了mysql,有3个表

SELECT 
    rb_function_booking_events.event_title, 
    rb_function_booking_events.event_id, 
    rb_function_category.category_name,
    rb_function_category.category_colour, 
    rb_function_rooms.colour as fc_colour 
FROM 
    rb_function_booking_events 
    JOIN rb_function_category 
        ON rb_function_booking_events.category = rb_function_booking_events.category 
    JOIN rb_function_rooms 
        ON rb_function_rooms.room_id = rb_function_booking_events.fc_id 
WHERE 
    rb_function_booking_events.booking_date='1396310400' 
    AND rb_function_booking_events.fc_id='1'
  • rb_function_booking_events表有1行
  • rb_function_category表有3行
  • rb_function_rooms表有6行

我想过滤rb_function_booking_events行但是当执行此查询时我得到3个结果而不是1个结果,有些请帮助

1 个答案:

答案 0 :(得分:0)

只要您有一个booking_event多个类别或多个房间,您就必须决定如何处理它们。查看结果行并问自己想要看到的颜色。

你可以用group_concat(distinct category_name)连接它们,在这种情况下,group by的提示是正确的。如果结果不同,您可以尝试仅查看多行,在这种情况下,只需使用select distinct

但是,如果预订了很多房间,那么“今天下午哪个单人房预订”的问题就无效了。