首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何让协作者的合作者使用mysql?

如何让协作者的合作者使用mysql?
EN

Stack Overflow用户
提问于 2013-02-20 17:07:56
回答 1查看 65关注 0票数 0

目前,我需要了解如何列出我的(collaborator_a)协作者(collaborator_b)、协作者、及其事件实例。

它目前的工作方式:

代表“合作者B”

  1. 合作者B单击合作者A项目页面上的“将我连接到项目”按钮。
  2. 将协作者A的用户ID保存为collaborator_a
  3. 将协作者B的用户ID保存为collaborator_b
  4. 项目协作者B的ID要链接到,保存为event_instance_id_a
  5. 为合作者B创建了一个合作者A项目的实例。这个新项目实例的ID被保存为event_instance_id_b

这都是为“合作者A”创建的,但是ID被镜像了。

结束。

我的桌子看起来是这样的:

collaborator

代码语言:javascript
运行
复制
id  collaborator_a  collaborator_b  event_instance_id_a  event_instance_id_b
--  --------------  --------------  -------------------  -------------------
1   1               2               1                    2
2   2               1               2                    1
3   1               3               1                    3
4   3               1               3                    1
5   6               9               4                    5
6   9               6               5                    4
7   1               9               6                    5
8   9               1               5                    6

event_instance

代码语言:javascript
运行
复制
id  user_id  description
--  -------  --------------
1   1        Some event desc...               
2   2        Some event desc...     
3   3        Some event desc...     
4   6        Some event desc...    
5   9        Some event desc...   
6   1        Some event desc...   

用户

代码语言:javascript
运行
复制
id  username  
--  --------  
1   username_1           
2   username_2           
3   username_3         
4   username_4     
5   username_5     
6   username_6
7   username_7     
8   username_8     
9   username_9

我能够获得(*collaborator_a*)自己的协作者(*collaborator_b*)及其事件实例,如下所示:

变量

代码语言:javascript
运行
复制
$user_id = 1
$event_instance_id_a = 2

MySQL

代码语言:javascript
运行
复制
SELECT c.*, u.*, e.* 
FROM (collaborator c) 
JOIN event_instance e ON c.event_instance_id_b = e.id 
JOIN user u ON c.collaborator_b = u.id 
WHERE c.event_instance_id_a = $event_instance_id_a 
AND c.collaborator_a = $user_id

有没有一个友好的人可以帮我把我的合作者的合作者带到一个特定的事件实例ID?

EN

回答 1

Stack Overflow用户

发布于 2013-02-21 08:58:41

不太确定你想要什么..。但是,如果您想让事件的所有贡献者都参与进来,这应该是有效的http://sqlfiddle.com/#!3/2d1a0/1

代码语言:javascript
运行
复制
create table event_collaborators (
  event_id int,
  collaborator_id int
);

create table events (
  id int, 
  user_id int,
  description varchar(255) not null
);

create table users (
  id int, 
  username varchar(25) not null
);

我已经修改了你的专栏,以便更容易理解,尽管这样做可能不会完全回答你的问题。

代码语言:javascript
运行
复制
SELECT ec.*, e.*, u.username
FROM event_collaborators AS ec
INNER JOIN events AS e ON ec.event_id = e.id
INNER JOIN users as u ON ec.collaborator_id = u.id
WHERE ec.event_id = 3;

使用*是一个非常糟糕的主意,但为了演示目的,这是可以的。我也不喜欢两个大INNER JOINS的想法,所以我会在event_collaborators映射表上使用一个索引,如果可能的话将查询分开。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14985725

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档