php:在三个db表之间显示相关数据的最快方法是什么

时间:2010-03-08 15:13:16

标签: php mysql

我正在寻找显示3个表格数据的最佳方式。让我解释。我有一个主表,列出事件,每个事件可以有多个类别,所以我使用连接表将类别链接到事件。我想循环遍历所有事件,并在每个事件下显示通过连接表相关的类别,我不确定这样做的最有效方法是什么?

更多信息:

我可以通过在事件循环中添加一个SQL语句来轻松实现这一点,它通过每次循环时更新语句中的事件id来拉出所选类别,但我确信有一个更优雅的方法使用一个sql查询创建一个可以在事件循环中使用的数组 - 我只是不确定我应该从哪里开始查看?

1 个答案:

答案 0 :(得分:0)

假设您有以下表格:

create table event ( 
   event_id int not null primary key,
   ....
);

create table evcat ( 
  event_id int not null,
   cat_id int not null,
   key (event_id, cat_id )
);

create table category (
   cat_id int not null,
   ...
);

然后查询只是3个表中的连接:

select * from event ev
  join evcat ec on ec.event_id = ev.event_id
  join category c on c.cat_id= ec.cat_id;