我正在开发一个人们可以出租房屋的网站.我正在使用php 5.2.0和
MySQL 5
出版物存储在这样的表格中
ta_publications
+---+-------------+------+
|id | name | date |
+---+-------------+------+
| 1 | name_001 | ... |
| 2 | name_002 | ... |
| 3 | name_003 | ... |
+---+-------------+------+
我有不同的出版物,有“互联网”,“制作服务”,“卫星电视”等“功能”.
这些功能将来可能会发生变化,我希望能够添加/删除/修改它们,因此我将它们存储在表中的数据库中.
ta_features
+---+-------------+
|id | name |
+---+-------------+
| 1 | Internet |
| 2 | Wi-Fi |
| 3 | satelital tv|
+---+-------------+
与使用下表的出版物有关
ta_publication_features
+---+-------------+----------------+
|id | type_id | publication_id |
+---+-------------+----------------+
| 1 | 1 | 1 |
| 2 | 2 | 1 |
| 3 | 3 | 1 |
+---+-------------+----------------+
我认为这很容易理解;有一个名为name_001的出版物,有互联网,Wi-Fi和卫星电视.
我有相同的图像数据模式,我将它们存储在此表中
ta_images
+---+-------------+
|id | src |
+---+-------------+
| 1 | URL_1 |
| 2 | URL_2 |
| 3 | URL_3 |
+---+-------------+
并使用下表将它们与出版物联系起来
ta_publication_images
+---+-------------+----------------+----------+
|id | img_id | publication_id | order |
+---+-------------+----------------+----------+
| 1 | 1 | 1 | 0 |
| 2 | 2 | 1 | 1 |
| 3 | 3 | 1 | 2 |
+---+-------------+----------------+----------+
列顺序给出了在列出单个出版物时应显示的出版物的顺序.
Philipp Reichart向我提供了一个查询,可以搜索并获取具有某些功能的所有出版物.它适用于列出出版物,我无法修改它以返回我需要的数据.
所以我想我将运行该查询并获取所有通过搜索条件的出版物,然后使用另一个查询来列出它们.
这些出版物的清单应包括所有出版物数据(ta_publications上的所有内容)所有这些特征是最重要的(订单0)图像src.
我可以为每个出版物提供两个简单的查询,它们将分别返回最重要的图像和所有功能,但是当每页列出25个出版物时,它将是1个搜索查询(每个出版物2个查询* 25)出版物)= 51个不同的查询,显然效率不高.
编辑:
我的问题是,如何创建一个SQL查询,给定一些发布ID,将返回:所有发布数据(ta_publications上的所有内容)所有这些功能都是最重要的(订单0)图像src