1

我正在为直接连接到数据库服务器的服务器应用程序创建一个 MySQL 视图。我不喜欢应用程序架构的方式,所以我采用了自己的结构。最初,我打算使用这些数据来创建静态配置文件,但这不再是一种选择。

无论如何,我将使用来自不同表的几行来创建这个视图。表 A 和视图之间存在 1:many 关系,而表 B 之间存在 1:1 关系。正是 1:many 让我失望。

在表 A 中,我有以下内容:

+--------------------------------+
| 编号 | 姓名 | 超时 | 任何|
+--------------------------------+
| 1 | 主要 | 10 | 1 |
+--------------------------------+

在表 B 中,我有以下内容:

+-------------------+
| 编号 | a_id | 路线 |
+-------------------+
| 1 | 1 | 123 |
+-------------------+
| 2 | 1 | 321 |
+-------------------+

对于视图,两个表将像这样连接:

+--------------------------------------------------+
| 姓名 | 应用 | 数据 |
+--------------------------------------------------+
| 主要 | 超时 | 10 |
+--------------------------------------------------+
| 主要 | 拨号 | 1 |
+--------------------------------------------------+
| 主要 | 路线图 | 321 |
+--------------------------------------------------+
| 主要 | 路线图 | 123 |
+--------------------------------------------------+

我什至不确定是否有这个名字(或者是否有可能),但任何开始的帮助都会很棒。

4

1 回答 1

0

您将使用 aUNION从第一个表中获取各个行,如下所示:

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

你应该有你想要的。

于 2012-09-11T19:47:41.127 回答