【发布时间】:2016-10-08 00:51:51
【问题描述】:
我想创建虚拟列。在list id 主表中,我需要使用“数据”连接虚拟列。
Table: columns
+------+---------+-------------+
| [ID] | ID_USER | DATENAME |
+------+---------+-------------+
| 1 | NULL | Description |
+------+---------+-------------+
| 2 | NULL | Cost |
+------+---------+-------------+
| 3 | 2 | Width |
+------+---------+-------------+
Table: list
+----+-----------+------------+--------+
|[ID]| NAME | DATE | COLOR |
+----+-----------+------------+--------+
| 1 | 234/2016 | 2016-06-06 | red |
+----+-----------+------------+--------+
| 2 | 1000/2016 | 2016-06-07 | blue |
+----+-----------+------------+--------+
| 3 | 3456/2016 | 2016-06-08 | yellow |
+----+-----------+------------+--------+
Table: data
+-----------+-----------+-------+
| ID_REPAIR | ID_COLUMN | VALUE |
+-----------+-----------+-------+
| 1 | 1 | aaaa |
+-----------+-----------+-------+
| 1 | 2 | 10$ |
+-----------+-----------+-------+
| 2 | 1 | bbbb |
+-----------+-----------+-------+
| 2 | 2 | 20$ |
+-----------+-----------+-------+
| 3 | 1 | cccc |
+-----------+-----------+-------+
| 3 | 2 | 30$ |
+-----------+-----------+-------+
Result:
+------+-----------+------------+--------+-------------+------+
| [ID] | NAME | DATE | COLOR | Description | Cost |
+------+-----------+------------+--------+-------------+------+
| 1 | 234/2016 | 2016-06-06 | red | aaaa | 10$ |
+------+-----------+------------+--------+-------------+------+
| 2 | 1000/2016 | 2016-06-07 | blue | bbbb | 20$ |
+------+-----------+------------+--------+-------------+------+
| 3 | 3456/2016 | 2016-06-08 | yellow | cccc | 30$ |
+------+-----------+------------+--------+-------------+------+
在这个查询中我得到名字columns:
SELECT * FROM `columns` WHERE `id_user` IS NULL
在 PHP 中将 ID 保存到变量中,但在测试中我想生成只有第二列的表。在下面的代码中,我想用Cost 列生成结果,但总是插入Description 列:
SQL:
SELECT `list`.`id`, `name`, `date`, `color`, `data`.`value`
FROM `list`
INNER JOIN `data` ON `list`.`id` = `data`.`id_repair` WHERE `repair_data`.`id_column` = 2
我不知道如何只在 id_column 等于 2 时进行 INNER JOIN
【问题讨论】:
标签: mysql sql dynamic multiple-columns