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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/87.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
mysql选择多个字段标题值为列的行_Mysql_Sql_Database Design_Pivot Table - Fatal编程技术网

mysql选择多个字段标题值为列的行

mysql选择多个字段标题值为列的行,mysql,sql,database-design,pivot-table,Mysql,Sql,Database Design,Pivot Table,表格示例 表:分类法 +--+----+ |ID|name| +--+----+ |1 |demo| +--+----+ 表:设置 +--+-----+-----+-----+ |ID|taxId|title|value| +--+-----+-----+-----+ |1 |1 |phone|1234 | +--+-----+-----+-----+ |2 |1 |addr |5678 | +--+-----+-----+-----+ 我想要像这样的输出 我试过了 SELECT

表格示例

表:分类法

+--+----+
|ID|name|
+--+----+
|1 |demo|
+--+----+
表:设置

+--+-----+-----+-----+
|ID|taxId|title|value|
+--+-----+-----+-----+
|1 |1    |phone|1234 |
+--+-----+-----+-----+
|2 |1    |addr |5678 |
+--+-----+-----+-----+
我想要像这样的输出

我试过了

SELECT 
    t.id
    ,t.name
    ,s.value AS s.title 
FROM
    taxonomy t, 
    settings s
WHERE 
    s.taxId = t.id
但它肯定给了我错误。另外,我想循环所有设置行,将s.value设置为s.title:

所以,是否可以聚合设置表中的所有行,并将行转换为使用标题字段作为列标题,其值=值字段? 这是一个好方法吗? 有没有设计我的桌子?
我使用这种结构的原因是/我不知道我需要多少设置,所以我不想把自己限制在一个单一的平面表结构中。

这被称为pivot-在MySQL中这不是很容易;你可以查一下。你可能会发现有用的
SELECT 
    t.id
    ,t.name
    ,s.value AS s.title 
FROM
    taxonomy t, 
    settings s
WHERE 
    s.taxId = t.id