mysql 相同id求和_mysql – 如何选择在同一列中出现的相同ID值?

我在

MySQL中有一个表名,其中包含以下列ID,类型,行,值

复合主键是ID,类型,行

此表的目的是将指定人员的所有姓名和职业保存在多行中 – 每行一个数据.

例如:通常在西班牙,人们有两个名字和两个姓氏,如JoséAnastacioRojas Laguna.

在德国,有许多人有一个名字,但有两个姓氏.甚至是广泛职业的人,比如在大学教学和同时在医院做医生.在这种情况下,在德国,人们会以他们的名字落后于教授.例如:JoséAnastacioRojas Laguna教授

在这种情况下,我会将所有这些信息存储在表中,如下所示:

ID | type | row | value

1 | 0 | 1 | Prof.

1 | 0 | 2 | Dr.

1 | 1 | 1 | José

1 | 1 | 2 | Anastacio

1 | 2 | 1 | Rojas

1 | 2 | 2 | Laguna

为一个人提供一个ID.表中的每个人都有一个唯一的ID,甚至一个人的身份证明. type定义,因为它表示名称的类型. 0表示专业,1表示名字,2表示姓氏. row定义名称中的位置. 1表示第1个名字,2表示第2个名字,3表示第3个名字等等…专业和姓氏相同.

现在我想知道如何通过传递那个人的一些名字来选择指定人的ID?如何通过仅提供一些值(或者具有相同ID)来确定ID?

最佳答案 这将返回名称为JoséLaguna且具有相同ID的用户:

select t1.id, t1.name, t2.name

from yourTable t1

join (select * from yourTable

where name = 'Laguna') t2

on t1.id = t2.id

where t1.name = 'José'

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值
>