我有一张名为'objects,events& amp; events_types',这些表有一个结构(不是它的所有结构,但我需要从数据库中显示的基本信息)和一些这样的信息:
物件:
的结构:
id(INT), title(TEXT)...
的数据:
活动:
的结构:
id(INT), object_id(INT), event_type(INT)
的数据:
Events_Types:
结构: id(INT), name(VARCHAR)
的数据:
我有一个页面,它从events
表加载所有数据,但是我需要页面只显示objects
表中有events
表数据的对象。它不会从objects
表加载我的id(3)对象,因为events
表中没有行object_id
3。
我需要一个包含以下列的html表:
objects.id
objects.title
events_types.name
events
表计算,此表的object_id
是id
表的objects
,event_type
表的events
得到来自URL的$_GET['event_type']
将被定义为变量 包含来自数据库的信息的表格示例$_GET['event_type'] = 1
和events_types
表格中的“1”为Alarm
:
| 1 | House #1 | Alarm: 2 |
| 2 | House #2 | Alarm: 1 |
但是不会显示House#3,因为events
表中没有数据。
有关信息,在实际表格中,我objects
表中有大约200条记录,每月events
表中有大约500条记录。这对我来说就像一个统计系统。
答案 0 :(得分:1)
查看此查询是否为您提供所需的数据:
SELECT O.id AS object_id, O.title, T.name, COUNT(*) as event_count
FROM Objects O
JOIN Events E ON O.id = E.object_id
JOIN Events_Types T ON E.id = T.id
GROUP BY O.id, E.event_type
答案 1 :(得分:1)
根据您的描述,这听起来像一个非常简单的联接:
SELECT
objects.id,
objects.title,
events_types.name
FROM
objects INNER JOIN events on events.object_id = objects.id
INNER JOIN events_types on events_types.id = events.event_type;
这应该为每个事件提供一条记录,该记录将标记该事件类型的名称。任何没有与之相关的事件的对象都不会出现。