Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.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 从多个表中获取数据_Php_Mysql - Fatal编程技术网

Php 从多个表中获取数据

Php 从多个表中获取数据,php,mysql,Php,Mysql,我的广告门户有4个表。 首先,主表名是ads +-------------+ | Field + +-------------+ | id + | ads_title + +-------------+ +------------+ | Field | +------------+ | id | | ads_id | | spc_id | | value | +------------+ ads表的示例数据 +--

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

+-------------+
| Field       +
+-------------+
| id      +
| ads_title   +
+-------------+
+------------+
| Field      |
+------------+
| id         |
| ads_id     |
| spc_id     |
| value      |
+------------+
ads表的示例数据

+----+-----------------+
| id | ads_title       |
+----+-----------------+
| 20 | 2006 CITROEN C4 |
| 27 | EMEKLI OGRETMEN |
| 28 | Harika 10 n     |
| 34 | HATASIZ BOYASIZ |
| 49 | BAYANDAN 2009   |
+----+-----------------+
用于存储在表中的ads规范。表名为ads\U 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_值

+-------------+
| Field       +
+-------------+
| id      +
| ads_title   +
+-------------+
+------------+
| 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 |
+----+--------+--------+-------+
我想使用这些表在数据行中列出具有规格(表:ads_spc)和ads值(表:ads_值)的ads(表:ads)

联合起来 ADS+ADS\U SPC+ADS\U值(所有值均可搜索)

我正在使用这个案例:

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
我怎样才能合并到一排?
对不起,我说的是英语。

为什么联盟没有意义你应该加入这些表格

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'

你自己试过什么吗?你能展示一些代码吗?如果你有其他的情况,联合不是强制性的。我用的是左图,你似乎用的是一个多维模型,有主数据和事实表。您的报告系统没有为您处理此问题有什么特殊原因吗?我如何按等于值的键进行筛选?键是什么?您正在尝试映射值?我的表模型是color=4(4是任何颜色…黑色..灰色…)color(ads_spc表中的一个键,4是ads_值中的任何颜色)