[英]Using dynamic column and table names in Join in MariaDB/MySQL
我不确定如何执行此操作,或者不确定是否可行,但从概念上看,它看起来像这样:
SELECT item_id, CONCAT('field_data_', `field_name`) AS t2, CONCAT(`field_name`, '_value') AS f
FROM (
BIG SELECT STATEMENT
) AS t1
JOIN {t2} ON t2.{f} = t1.item_id
JOIN中的{t2}来自通过串联创建的字段,而JOIN中的{f}来自于通过串联创建的另一个字段。
即{t2}和{f}替换为字段的值,而不是字面意义上的t2&f。 我认为可以使用COLUMN_GET之类的方法来完成此操作,但是我不确定如何在JOIN部分中进行此操作。
这可能吗?
不,这是不可能的。 表名称,列名称和SQL查询的所有其他元素必须在解析查询时固定。 您不能使查询根据查询在执行过程中发现的数据做不同的事情。
这就像在问:“我可以编写一个返回值的Java函数,但返回的值确定我调用哪个函数吗?”
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.