【发布时间】:2021-01-21 21:53:27
【问题描述】:
我会将我的表格通知加入 2 个不同的表格,让我举一个类似的例子。
通知:
ID | player_id | item_id | ....
篮球运动员的物品
player_id | item_id | note | points | rebounds
足球运动员的物品
player_id | item_id | note | match | goal
重要提示:所有球员 ID 都是唯一的,足球运动员的格式为 1********,篮下的球员的格式为 5************。所以所有的情侣 player_id - item_id 也是独一无二的。
结果应该是这样的表格:
id | player_id | item_id | note | attr1 | attr2
在“note”中,有两种玩家的注释,“attr1”由分数填充或匹配取决于玩家类型(相同类型。INT)
此外,这些项目可以与 SOCCER_ITEMS 和 BASKET_ITEMS 表连接,其中包含有关项目本身的信息。此 JOIN 可以创建重复的行,因为 item_id 在 2 个表之间不是唯一的,因此篮子项目可以与足球项目的信息连接,从而产生问题。
是否可以以 SQL 中呈现的方式收集数据?我在用PHP写代码(不知道有没有用)
【问题讨论】:
-
似乎您只需要明确选择
SELECT子句中的列,而不是使用*选择所有内容。你能分享一下你试过的查询吗? -
上面的表格是示例,但查询类似于:
codeSELECT n.id, n.player_id, n.item_id, b.note, s.note FROM notifications n LEFT JOIN football s ON s.player_id = n.player_id AND s.item_id = n.item_id 左加入篮子 b ON b.player_id = n.player_id AND b.item_id = n.item_idcode结果:coden.id | n.player_id | n.item_id | b.注意 |例如,s.notecode2 列用于不同的“注释”列,而不是包含所有结果的列 -
在 attr1 中你想要列点数还是比赛,在 attr2 列中是篮板还是进球等等,具体取决于球员的类型?