SELECT循环中的SELECT循环

时间:2018-03-13 22:02:49

标签: php mysql sql

我有一个PHP / MySQL场景,我想显示一个事件列表,但也显示分配给一个事件的所有用户。在MySQL中,我有一个eventseventusersusers表。

我可以SELECT event_id, event_name FROM events然后在PHP中循环结果,然后在每个结果循环中循环SELECT user_id FROM eventusers WHERE event=[event_id]以获取特定事件的用户。

我想知道是否有办法在一个单独的SQL查询中执行此操作(并且它还具有良好的性能),因此我从events表中获取数据以及附加到的所有用户ID来自eventusers表的事件。类似的东西:

event id | event name    | Users from eventusers table
------------------------------------------
1        | Soccer match  | 3,56,79
2        | Cycling       | 46,77,88,126,78

2 个答案:

答案 0 :(得分:1)

您应该使用JOIN语句来合并表:

SELECT event_name, user
FROM events
INNER JOIN eventusers
ON events.event_id = eventusers.event_id

在您的情况下,您应该执行以下操作:

{item}

我希望这对你有所帮助

答案 1 :(得分:0)

您可以使用连接功能:

select * from
table1 JOIN table2
ON table1.pk=table2.fk 

然后添加条件

where table1.column= something

但是你需要让两个表与列(.pk和.fk)连接,在这种情况下它可以是eventuserid

select * from
events JOIN eventusers
ON events.eventuserid=eventusers.userid
where event.id= [event_id]

此外,您可以使用您需要的列来减去*:tablename.column,您只能获得这些列值

对不起,我不理解关于CSV文件的第二部分,你能澄清一下吗?