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才应该是动态的。