使用两个表的不同选择语句

时间:2014-09-19 12:37:25

标签: mysql

我已经在论坛上看了一会儿,但我无法找到以下解决方案。

我有两张桌子,用户和预订。

用户:

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返回所有预订,但它也多次包含用户本身,我只需要一次用户数据。

2 个答案:

答案 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.*

而不是指定相关的列名