【发布时间】:2014-03-03 16:25:45
【问题描述】:
我创建了一个包含 5 个表的视图。所有的表都有相同的唯一键。当我为每个表中的给定 ID 选择 COUNT(*) 时,每个表中的每个 ID 都有一条记录。
例如:select count(*) from general where id = '523d8bab7' 返回 1。我还有 4 个其他表。当我运行 select COUNT 时,我得到任何给定 ID 的计数。
当我创建视图时,每个 ID 都有 4 行。每个 ID 应该只有一行。
这是我使用的 SQL 示例:
SELECT
table1.id,
table1.field1,
table1.field2,
table1.field3,
table2.field1,
table2.field2,
table2.field3,
table3.field1,
table3.field2,
table3.field3,
table3.field4,
table4.field1,
table4.field2,
table4.field3,
FROM table1
INNER JOIN talbe2 on table1.id = table2.id
INNER JOIN table3 on table1.id = table3.id
INNER JOIN table4 on table1.id = table4.id;
如何创建一个视图/sql 以在视图中为每个唯一 ID 创建一行?现在,每个 ID 在我的视图中显示 4 行。
【问题讨论】:
-
我想看看能证明这一点的 sqlfiddle!
-
你确定你的表有唯一的ID吗?测试几个 ID 并不能证明这一点。您可以通过在
id上为每个表创建一个主键来证明这一点。