【发布时间】:2020-02-25 21:24:27
【问题描述】:
table1
----------------|------------------|-------------------|-------------------|
| email | selection1 | selection2 | selection3
|
|---------------------|------------------|-------------------|-------------------|
| test@test.com | 4 | 7 9
|---------------------|------------------|-------------------|------------------|
|test2@test.com 2 9 6
---------------------|------------------|--------------------|-------------------|
table2
|---------------------|------------------|-------------------|-------------------|
| race1| race2 | race3 | race4
|
|---------------------|------------------|-------------------|-------------------|
| 5 | 7 | 9 2
|---------------------|------------------|-------------------|------------------|
所以,我有两张桌子。 一种是根据用户输入选择 3 场比赛作为获胜者的数量。
第二张表是比赛获胜者的号码。
我想比较这两个表并创建第三个表。如果这个人的选择与获胜的比赛相匹配,那么他们将获得 50 分。所以第三个表格会显示“email”和“points”
这将持续 4 天,因此如果同一电子邮件匹配另一位比赛获胜者,他们将获得额外 50 分。
我试过 INNER JOIN,但是组合太多了。我是 PHP 和 SQL 的新手,所以我真的不知道该采取什么方法。
【问题讨论】:
-
你应该规范化表格
-
这个数据库结构一团糟。如果你需要 50 场比赛,你会改变第二张桌子的结构吗?以及用户选择如何与这些比赛相对应,例如:
selection1 = 2在table1,但在table2你有race4 = 2,这是否意味着用户获胜? -
基本上最上面的表格是用户输入的,所以他们提供了他们的电子邮件地址,然后为 3 场比赛(只有 3 场)挑选他们的选择。表 2 是每场比赛的结果。所以如果比赛 1 =1,并且用户选择 1 =1。他们得到 50 分。如果比赛 2 符合他们的选择 2,他们将再次获得 50 分。希望这更有意义
标签: php mysql database join denormalization