我正在为直接连接到数据库服务器的服务器应用程序创建MySQL视图。我不喜欢应用程序架构的方式,所以我选择了自己的结构。最初,我打算使用数据来创建静态配置文件,但这不再是一种选择。
无论如何,我将使用不同表中的几行来创建此视图。表A与视图之间存在1:多关系,表B之间存在1:1关系。这是1:很多关系让我失望。
在表A中,我有以下内容:
+--------------------------------+ | id | name | timeout | any | +--------------------------------+ | 1 | Main | 10 | 1 | +--------------------------------+
在表B中,我有以下内容:
+-------------------+ | id | a_id | route | +-------------------+ | 1 | 1 | 123 | +-------------------+ | 2 | 1 | 321 | +-------------------+
对于视图,两个表将像这样连接:
+-------------------------------------+ | name | app | data | +-------------------------------------+ | Main | timeout | 10 | +-------------------------------------+ | Main | dialany | 1 | +-------------------------------------+ | Main | routeto | 321 | +-------------------------------------+ | Main | routeto | 123 | +-------------------------------------+
我甚至不确定是否有这个名字(或者甚至可能),但是任何帮助都可以开始使用。
答案 0 :(得分:0)
您使用UNION
从第一个表中获取各行,如下所示:
SELECT name, 'timeout' as app, timeout FROM A WHERE id = 1
UNION SELECT name, 'dialany' as app, `any` FROM A WHERE id = 1
然后在另一张表中UNION
:
UNION SELECT A.name, 'routeto' as app, B.data FROM A
JOIN B ON A.id = B.a_id
WHERE A.id = 1
你应该拥有自己想要的东西。