Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php:在三个db表之间显示相关数据的最快方法是什么_Php_Mysql - Fatal编程技术网

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

php:在三个db表之间显示相关数据的最快方法是什么,php,mysql,Php,Mysql,我正在寻找显示3个表中数据的最佳方法。让我解释一下。我有一个主表列出事件,每个事件可以有许多类别,所以我使用一个连接表将类别链接到事件。我想循环浏览所有事件,并在每个事件下显示通过联接表关联的类别,我不确定这样做的最有效方式是什么 更多信息: 我可以通过在事件循环中添加一条SQL语句来轻松实现这一点,该语句通过在每次循环时更新语句中的事件id来提取所选类别,但我相信有一种更优雅的方法,它使用一个sql查询创建一个数组,然后可以在事件循环中使用-我只是不确定应该从哪里开始查找?假设您有如下表: c

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

更多信息:


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

假设您有如下表:

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;

到目前为止,您的SQL是什么样子的?还有,您的表是什么样子的?这些表中应该有多少行(特别是,如果行数增长了,那么它们的增长速度有多快)