php - 从多个表中获取数据

标签 php mysql

我的广告门户有 4 个表格。 首先主表名称是ads

+-------------+
| Field       +
+-------------+
| id      +
| ads_title   +
+-------------+

广告表的示例数据;

+----+-----------------+
| id | ads_title       |
+----+-----------------+
| 20 | 2006 CITROEN C4 |
| 27 | EMEKLI OGRETMEN |
| 28 | Harika 10 n     |
| 34 | HATASIZ BOYASIZ |
| 49 | BAYANDAN 2009   |
+----+-----------------+

用于存储在表中的广告规范。表名是ads_spc

+---------+
| Field   |
+---------+
| id      |
| key_name|
+---------+

ads_spc 表的数据示例;

+----+-------------+
| id | key_name    |
+----+-------------+
|  1 | Date        |
|  2 | Km          |
|  3 | Colr        |
|  4 | Engine      |
|  5 | Pw. Engine  |
|  6 | Oil         |
|  7 | Speed       |
|  8 | Boody Type  |
|  9 | Traction    |
| 10 | Warranty    |
+----+-------------+

最后按 ads_id 存储的 ads_spc 规范值。表名是 ads_values

+------------+
| Field      |
+------------+
| id         |
| ads_id     |
| spc_id     |
| value      |
+------------+

比如这张表数据

+----+--------+--------+-------+
| id | ads_id | spc_id | value |
+----+--------+--------+-------+
| 25 |     49 |      9 |  2119 |
| 26 |     49 |     10 |  2131 |
| 27 |     34 |      1 |  2010 |
| 28 |     34 |      2 |  8900 |
| 29 |     34 |      3 |     4 |
| 30 |     34 |      4 |    22 |
| 31 |     34 |      5 |    40 |
| 32 |     34 |      6 |    60 |
| 33 |     34 |      7 |    65 |
| 34 |     34 |      8 |    66 |
+----+--------+--------+-------+

我想使用这些表格在数据行中列出广告 (table:ads) 和规范 (table:ads_spc) 和广告值 (table:ads_values)。

联合到; ADS + ADS_SPC + ADS_VALUES(所有值均可搜索)

我正在使用这种情况:

SELECT SQL_CALC_FOUND_ROWS 
*
FROM ads AS a
LEFT JOIN ads_spc AS aspc 
LEFT JOIN ads_values AS aval ON aval.ads_id=a.id AND aval.spc_id=aspc.spc_id

如何合并到一行? 对不起我的英语。

最佳答案

为什么 union 对于 union 你应该加入这些表是没有意义的

SELECT v.id, a.ads_title,s.key_name,v.value FROM `ads` a
INNER JOIN `ads_values`  v ON (a.id =v.ads_id)
INNER JOIN `ads_spc` s ON(v.spc_id =s.id) WHERE s.key_name='Color'

关于php - 从多个表中获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18113552/

相关文章:

php - 我如何使用 phpunit 测试多个查询结果

php - 在不使用foreach In PHP的情况下,将方程式应用于关联数组的每个值

mysql - SQL 中基于类别的第二个最大值

mysql - 按日期排序并将父/子文档分组

javascript - 显示另一个文件中操作文件内的警报消息

php - 复合项目的相似度得分

PHP Simple Dom - 在类似于 + CSS 选择器的元素后立即获取元素

PHP 和 SQL 登录 - "User Not Found"

android - 使用数组从数据库中设置表内的值

PHP 登录框架,包括 google/facebook/openid 等