我是 php 和 mysql 的新手,我正在尝试 2 天来创建一个 Web 应用程序,它可以从表单中存储有关用户的特定数据,而不是允许用户基于类似的稍微复杂的表单进行搜索。我让表单工作并输入到数据库,但我在从 mysql 接收数据时遇到问题,也许将来我也会使用搜索功能,但我还没有考虑太多。现在我专注于从 db 获取特定数据。
SELECT players.*,
brackets.name AS interested_in,
classes.name AS looking_for,
tags.name AS tagged_with
FROM players JOIN player_brackets ON (players.id = player_brackets.player_id)
JOIN brackets ON (player_brackets.bracket_id = brackets.id)
JOIN player_classes ON (player_brackets.player_id = player_classes.player_id)
JOIN classes ON (player_classes.class_id = classes.id)
JOIN player_tags ON (player_classes.player_id = player_tags.player_id)
JOIN tags ON (player_tags.tag_id = tags.id)
WHERE players.id = '18'
我有这个工作正常的查询,但我从中获得的数据是数据库中数据的每一个组合,现在大约有 100 多个结果几乎相同。它将结果乘以数据库中的字段数,例如播放器 (1) * 括号 (3) * 类 (11) * 标签 (5),它将输出 165 行几乎相同的数据,但字段括号、类的差异和标签。
如果我将结果分组,players.id
我只会得到一行,但其他字段的数据会丢失。我想得到 1 行,它将包含所有这些(可能在一个数组中包含多个数据)。
DB 有 7 个表格 - 球员、标签、班级、括号和 3 个表格,其中包含球员 ID 和标签/班级/括号 ID 组合。
我一直在搜索网络和 SO,但没有什么真正帮助我。如果有人可以帮助我解决这个问题,那就太好了。感谢您的回复,我很抱歉我的英语不好,它不是我的主要语言。