Mysql 如何在表列中定义的表上进行左联接

Mysql 如何在表列中定义的表上进行左联接,mysql,sql,dynamic,Mysql,Sql,Dynamic,考虑下表: 用户表 id | name | createdAt | -----------------------| 1 | John | 2018-02-02 | 活动表 id | itemId | itemTable | createdAt | -------------------------------------| 13 | 1 | User | 2018-02-02 | 14 | 142 | Client | 2018-02-02 | 我希望

考虑下表:

用户表

id | name | createdAt  |
-----------------------|
1  | John | 2018-02-02 |
活动表

id | itemId | itemTable | createdAt  |
-------------------------------------|
13 | 1      | User      | 2018-02-02 |
14 | 142    | Client    | 2018-02-02 |
我希望能够在列中指定的表上
左联接

SELECT    b.* 
FROM      activity      AS a 
LEFT JOIN *a.tablename* AS b 
ON        b.id = a.itemid

对于MemSQL或MySQL

您不能在
选择
查询中执行此操作。SQL不是这样运行的

如果您知道只有两个表,可以将查询表示为:

SELECT u.* 
FROM USER u 
WHERE u.id = (SELECT 1 FROM activity a WHERE  a.itemid = u.id) 
UNION ALL 
SELECT c.* 
FROM client c 
WHERE c.id = (SELECT 1 FROM activity a WHERE  a.itemid = c.id); 

用你正在使用的数据库标记你的问题。不,不,不,不。你不应该这样做。只有当您完全没有其他选择时,SQL才应该是动态的。