Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/260.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/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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.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 MySQL动态选择列_Php_Mysql_Sql_Join - Fatal编程技术网

Php MySQL动态选择列

Php MySQL动态选择列,php,mysql,sql,join,Php,Mysql,Sql,Join,我正在寻找按变量动态选择不同列名的查询 假设我有一个包含我要选择的动态列的列表,如下所示: 从'modules\u forms\u objects'中选择'ObjectID','ObjectLabel'` 我想将一个值列连接到第一个表,这将包含 匹配第二个表中的列。例如:对于ObjectID 72,该值将为NULL 最终,我希望我的结果如下: +----------+---------------+--------------------+ | ObjectID | ObjectLabel

我正在寻找按变量动态选择不同列名的查询

假设我有一个包含我要选择的动态列的列表,如下所示:

从'modules\u forms\u objects'中选择'ObjectID','ObjectLabel'` 我想将一个值列连接到第一个表,这将包含 匹配第二个表中的列。例如:对于ObjectID 72,该值将为NULL

最终,我希望我的结果如下:

+----------+---------------+--------------------+ | ObjectID | ObjectLabel | Value | +----------+---------------+--------------------+ | 71 | Join Date |0000-00-00 00:00:00 | | 72 | Active | NULL | +----------+---------------+--------------------+ 当我使用传统连接时,我得到了每行的所有列,它看起来有点重


有什么想法吗?非常感谢

使用“显示选项卡名称中的列”并使用“字段属性”获取相应的列

这将给出特定表中的所有列名

SELECT 
        GROUP_CONCAT(COLUMN_NAME)
FROM 
        INFORMATION_SCHEMA.COLUMNS
WHERE 
        table_name = 'mytable'

基本静态查询可能如下所示

选择m.ObjectID、m.ObjectLabel、q.Value 从模块\u表单\u对象m左连接 选择objectid, 案例对象 当你71岁时,你就71岁了` 当72那么'72` 终值 从'7'开始不能交叉连接 选择71 objectid UNION ALL 选择72 C Q 关于m.objectid=q.objectid 其思想是首先取消激活7表,然后将其与模块\窗体\对象外部连接

输出:

| OBJECTID | OBJECTLABEL | VALUE | -----------|-------------|---------------------| | 71 | Join Date | 0000-00-00 00:00:00 | | 72 | Active | (null) |
这是演示

你有很多很多衣服,不是吗?谢谢。你知道有没有什么方法可以改变这种动态?如果我这样做,我将不得不使用php来生成大小写语法,我正试图避免这种情况。@Dan,不客气。请参阅更新的答案。我刚刚演示了如何使用动态SQL实现这一点。你可以用一个存储过程来简化客户端PHP方面的事情。@丹,如果你觉得它是你要找的,请考虑答案。
SELECT 
        GROUP_CONCAT(COLUMN_NAME)
FROM 
        INFORMATION_SCHEMA.COLUMNS
WHERE 
        table_name = 'mytable'
| OBJECTID | OBJECTLABEL | VALUE | -----------|-------------|---------------------| | 71 | Join Date | 0000-00-00 00:00:00 | | 72 | Active | (null) |