Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.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,我有3张桌子: 表“属性”: 表“联系人”: 表“属性\联系人”: 注意:“attribute\u contact”表中的attribute\u id和email是前两个表中的外键 问题: 使用SQL查询,是否可以获得如下示例所示的输出: email | City | Phone nov@gmail.com | London | NULL teb@gmail.com | NULL | 5

我有3张桌子:

表“属性”:

表“联系人”:

表“属性\联系人”:

注意:“attribute\u contact”表中的attribute\u id和email是前两个表中的外键

问题:

使用SQL查询,是否可以获得如下示例所示的输出:

email              | City            | Phone
nov@gmail.com      | London          | NULL
teb@gmail.com      | NULL            | 555444333
城市和电话是“属性”表中的记录

尝试上面的查询


希望这对你有帮助。

你也可以试试这个

1) 根据属性id选择值的用例

2) 内部联接以从两个表中选择数据

SELECT atc.email,
CASE WHEN atc.`attribute_id` = 123 then `value` else NULL END AS CITY,
CASE WHEN atc.`attribute_id` = 456 then `value` else NULL END AS Phone
FROM `attribute_contact` atc INNER JOIN attribute at ON atc.`attribute_id` = at.`attribute_id`
email         | attribute_id | value
=========================================
nov@gmail.com | 123          | London
teb@gmail.com | 456          | 555444333
email              | City            | Phone
nov@gmail.com      | London          | NULL
teb@gmail.com      | NULL            | 555444333
SELECT 
AC.email,
CASE WHEN AT.attribute_name='CITY' THEN AC.value ELSE NULL END CITY,
CASE WHEN AT.attribute_name='Phone' THEN AC.value ELSE NULL END PHONE
FROM attribute_contact AC
INNER JOIN attribute AT ON (AC.attribute_id =AT.attribute_id)
SELECT atc.email,
CASE WHEN atc.`attribute_id` = 123 then `value` else NULL END AS CITY,
CASE WHEN atc.`attribute_id` = 456 then `value` else NULL END AS Phone
FROM `attribute_contact` atc INNER JOIN attribute at ON atc.`attribute_id` = at.`attribute_id`