【发布时间】:2013-11-07 11:11:15
【问题描述】:
所以,这基本上是问题所在:
首先,我不是要求任何人做我的功课,而是要让我朝着正确的方向轻推。
我有 2 个表格,其中包含用于练习的姓名和联系数据
我们将这些表称为people 和contact。
为people 创建表:
创建表`people` (
`id` int(10) 无符号 NOT NULL AUTO_INCREMENT,
`fname` 小文本,
`mname` 小文本,
`lname` 小文本,
主键 (`id`)
) ENGINE=InnoDB 默认字符集=latin1
为contact 创建表:
创建表`联系人`(
`id` int(10) 无符号 NOT NULL AUTO_INCREMENT,
`person_id` int(10) unsigned NOT NULL DEFAULT '0',
`tel_home` 小文本,
`tel_work` tinytext,
`tel_mob` 小文本,
`电子邮件`文本,
主键(`id`,`person_id`),
KEY `fk_contact` (`person_id`),
约束 `fk_contact` 外键 (`person_id`) 参考 `people` (`id`)
) ENGINE=InnoDB 默认字符集=latin1
在获取每个人的联系方式时,我使用的查询如下:SELECT p.id, CONCAT_WS(' ',p.fname,p.mname,p.lname) name, c.tel_home, c.tel_work, c.tel_mob, c.email;
这只会创建如下响应:
此视图的问题在于,第 1 行和第 2 行(从 0 开始计数)可能已被分组为一行。
尽管这种“不漂亮”的结果是由于数据损坏造成的,但这种情况很可能会发生在多节点数据库环境中。
目标结果类似于
id 和 name 相同的行在仍然显示有效数据时被分组。
旁注:
innodb_version:5.5.32
版本:5.5.32-0ubuntu-.12.04.1-log
version_compile_os: debian_linux-gnu
【问题讨论】:
-
如果“组”中的两条或多条记录包含冲突数据怎么办?
-
非 NULL 值不应与其他非 NULL 值组合在一起
标签: mysql