如何避免从一对多关系中获取一排?

时间:2015-05-09 02:29:16

标签: mysql sql join

我有三张桌子,结构如下:

Trips: id
Users: id
users_has_trips: user_id, trips_id

我当前的查询:

SELECT trips.id 
FROM trips 
LEFT JOIN users_has_trips ON users_has_trips.trips_id = trips.id 
WHERE users_has_trips.users_id != '1'

如果users_has_trips.users_id中的值设置为某个值(例如1),我不想选择trip.id。 users_has_trips有多行具有users_has_trips.trips_id的相同值,因此当我删除包含不需要的users_id的行时,我仍会显示行。

例如,trip.id值为1和2. users_has_trips列(trips_id,users_id)的值分别为(1,1),(1,2)和(1,3)。

当我运行上面的查询时,WHERE将消除(1,1)的行,但仍然会在行(1,2),(1,3)中获取1的trips.id,以及trip.id of 2。

期望的结果是不选择trips.id值为1(因为我的users_id与之关联)并且只获取trip.id值为2。

0 个答案:

没有答案