Ste*_*ano 0 mysql sql database sqlite
我有2个像这样的结构表:
People
----------
>ID, Name, Surname
Projects
----------
>ID, Assistant#1, Assistant#2, Assistant#3, Assistant#4,
> Assistant#5, Assistant#6, Assistant#7, Assistant#8, Assistant#9,
> Assistant#10, lot of other columns..... (every assistant column
> contains an integer, the people ID)
Run Code Online (Sandbox Code Playgroud)
现在,我想查询我的数据库并从Project表中获取一行(让我们假设ID = 3的行)包含项目表的所有列,特别是每个助手都用它的正确名称和姓氏替换.我已经设法做了这个(有很多连接),但是凭借我的小sql经验,我的代码看起来非常笨重,我确信有更好的方法来做到这一点.
提前致谢.
SELECT p.Name, p.Surname
FROM People p
CROSS JOIN Project j ON (p.PeopleID = j.Assistant1 OR
p.PeopleID = j.Assistant2 OR
p.PeopleID = j.Assistant3 OR
.. etc)
AND j.ProjectID = 3
Run Code Online (Sandbox Code Playgroud)
你的表现会很糟糕,但这是你为拥有一个设计糟糕的数据库而付出的代价.更好的解决方案是通过分解来映射项目和人员:
CREATE TABLE proj_people
People_ID INT
Project_ID INT
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
153 次 |
| 最近记录: |