我有一个PHP / MySQL场景,我想显示一个事件列表,但也显示分配给一个事件的所有用户。在MySQL中,我有一个events
,eventusers
和users
表。
我可以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
答案 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文件的第二部分,你能澄清一下吗?