【发布时间】:2021-04-26 18:43:34
【问题描述】:
我正在使用 Oracle SQL,我有以下表格:
用户
UserID | UserPeers | Gender
-----------+--------------+--------
Mike | Tom1, Bob1 | M
John | Tom1, Greg1 | M
Sally |Mike1, John1 | F
Sara | Sally1, Bob1 | F
special_user
UserID
-------
Tom1
John1
我正在尝试获取在 special_users 表中存在同级的所有用户。
我的尝试:
SELECT *
FROM user
WHERE '%' UserPeers '%' LIKE IN (SELECT UserID FROM special_users)
显然语法是错误的,所以我不知道该怎么做?
预期结果:
UserID | UserPeers | Gender
-----------+--------------+---------
Mike | Tom1, Bob1 | M
John | Tom1, Greg1 | M
Sally | Mike1, John1 | F
【问题讨论】:
-
修复你的数据模型,这样你就不会在一个字符串中存储多个值。
-
@GordonLinoff 同意你的观点,但我不拥有它。
-
您不必对用户使用诸如“第三范式”之类的学术术语。您所要做的就是与他们讨论索引以及更好的模型如何使编码更容易。但是,如果您想成为一名学者,那么我可以建议this 吗?