我已经在论坛上看了一会儿,但我无法找到以下解决方案。
我有两张桌子,用户和预订。
用户:
unique id, firstname and lastname
预定:
uniquide id, userId, arrival and departure
对于用户进行的每次预订,预订表将包含字段userId中的唯一用户ID。 我现在想要从表用户获取名字和姓氏,以及根据userId进行的所有预订。
select users.*, bookings.* FROM users, bookings WHERE bookings.userId =:id GROUP BY bookings.id
上述声明根据userId返回所有预订,但它也多次包含用户本身,我只需要一次用户数据。
答案 0 :(得分:0)
select u.id, u.firstname, u.lastname, b.id as bookingid, b.arrival, b.departure from users u JOIN bookings b ON u.id = b.userid
在这种情况下,在booking.id上执行 GROUP BY 是没有意义的,因为booking.id是最低级别的元素。现在,你可以按users.id分组,但是你不能再返回所有单独的预订 - 但是你可以返回很多有用的东西,比如 COUNT(bookings.id)AS NbrBookings 或MIN(到达)或MAX(离开)
但您无法同时拥有汇总数据和个人数据。
答案 1 :(得分:0)
users.*, bookings.*
而不是指定相关的列名