在MySql中是否有一种方法可以创建内联表并用于连接操作?
类似于:
SELECT LONG [1,2,3] as ID, VARCHAR(1) ['a','b','c'] as CONTENT
这将输出
| ID | CONTENT |
| LONG | VARCHAR(1)|
+------+-----------+
| 1 | 'a' |
| 2 | 'b' |
| 3 | 'c' |
我可以在类似这样的连接中使用:
SELECT
MyTable.*,
MyInlineTable.CONTENT
FROM
MyTable
JOIN
(SELECT LONG [1,2,3] as ID, VARCHAR(1) ['a','b','c'] as CONTENT MyInlineTable)
ON MyTable.ID = MyInlineTable.ID
我意识到可以这样做
SELECT 1,'a' UNION SELECT 2,'b' UNION SELECT 3,'c'
但那似乎相当恶劣。
我不想使用存储过程,因为potentially a、b、c可以在每个查询中都会变化,数据的大小也会随之改变。此外,存储过程需要保存在数据库中,而我不想仅仅为此修改数据库。视图也是一样。
我真正要找的是一个更好语法的 SELECT 1,'a' UNION SELECT 2,'b' UNION SELECT 3,'c'
。
UNION
更容易添加数据。在关闭连接后,临时表将被删除。建议您有时间时查看一下。 - Fernando Carvalhosa