【问题标题】:Mysql: Join to create a view repeats rows 4 timesMysql:加入创建视图重复行4次
【发布时间】: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 上为每个表创建一个主键来证明这一点。

标签: mysql sql join view


【解决方案1】:

确定您声明了错误的表或加入了错误的列。 连接不会凭空创建一行。

尝试每次删除一个连接以找到有问题的连接

【讨论】:

    猜你喜欢
    • 2017-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-07
    • 1970-01-01
    • 2013-12-02
    • 1970-01-01
    • 2012-07-08
    相关资源
    最近更新 更多