加入3个表,没有得到期望的结果
问题描述:
我在MySQL的三个表: 活动,用户均具有多对多的关系。因此,第三张表参加。加入3个表,没有得到期望的结果
表内容:
活动:
E_ID,e_content
用户
U_ID,u_details
参加
E_ID,U_ID,主治
考虑让我登录,我的UID是1005 所以我希望看到所有的活动中,我是否感到attanding的evnet但如果我参加Attend.attending列,应该是别人应该null
我尝试了很多连接,但我还没有收到所需的查询。
,如:
select e.e_id,u.u_details,a.attending
from Events e
left join attend a on e.e_id = a.e_id
left join users u on u.u_id = a.U_id
and u.u_id = 1005;
与上面的查询,我得到相同的结果对于所有UID
答
答
如果像特意嘱咐,所有事件都需要显示,但是特定用户(1005)所参加的参与者的出席次数=“是”,则需要多于左连接,就好像多个用户正在参加一样,即使未显示u_id,它仍将显示所有参加用户的“是”。
http://sqlfiddle.com/#!9/ed738/3/1
显示查询2左边的连接,然后第二个结果集,它得到了我认为是所需的结果。
select e.e_id,a.u_details,a.attending
from Events e
left join (select a.*, u.u_details
from attend a
INNER join users u ON
(a.u_id = u.u_id and u.u_details = 'will')) a on e.e_id = a.e_id
还有比这样做的可能更优雅的方式较多,但认为这不会工作。
你曾试过相同的? –