gpt4 book ai didi

mysql - 在单个查询中查询多个 mySQL 表

转载 作者:行者123 更新时间:2023-11-29 12:24:57 24 4
gpt4 key购买 nike

我需要为侦察数据库编写一个查询,将徽章的要求与给定成员已经获得的技能进行比较。目的是多种技能适用于多种徽章。我的相关表格(有很多)如下所示:

Badge_Table:Badge_ID,徽章_名称,Badge_Description,

Badge_Skills_Table:Badge_Skill_ID,徽章_ID,技能_ID,

技能表:Skill_ID,技能名称,技能描述,

获得的技能表:Skills_Earned_ID技能ID用户ID

用户表:User_ID,姓名,年龄,地址

主键以斜体显示,外键关系从 Badge_table 到 Badge_Skills_Table 到 Skills_Table 到 Skills_Earned_table 到 User_Table。

到目前为止,我已经提出了以下想法:

选择指定技能的所有徽章

SELECT badge_table.badge_name
FROM (badge_table
INNER JOIN badge_skills_table ON badge_ID
INNER JOIN Skills_Table ON skill_Id)
WHERE Skills_Table.Skill_Id = 1;

选择每个技能的所有徽章

SELECT badge_table.badge_name
FROM (badge_table
INNER JOIN badge_skills_table ON badge_ID
INNER JOIN Skills_Table ON skill_Id)
WHERE Skills_Table.Skill_Id = Skill_Badge_Table.Skill_Id

为指定用户选择指定技能的所有徽章 - 不太有效

SELECT badge_table.badge_name
FROM (badge_table
INNER JOIN badge_skills_table ON badge_ID
INNER JOIN Skills_Table ON skill_Id
INNER JOIN Skills_Earned_Table On skill_ID
INNER JOIN users_table ON user_ID)
WHERE Skills_Earned_Table.User_ID= 1 AND Skills_Earned_Table.SKILL_ID = Skill_Badge_Table.skill_ID

那么任何人都可以帮助指导我以下内容:

  1. 如何返回给定技能适用的所有徽章。 (完成)
  2. 如何归还给定球探已获得技能的所有徽章。
  3. 归还给定侦察兵已获得所有技能的所有徽章。

非常感谢您提供的任何帮助,

最佳答案

您没有<conditions>在你的ON条款。尝试下面的查询:

SELECT A.badge_name
FROM badge_table A
INNER JOIN badge_skills_table B ON A.badge_ID=B.badge_ID
INNER JOIN Skills_Table C ON B.skill_Id=C.skill_ID
INNER JOIN Skills_Earned_Table D ON C.skill_ID=D.skill_ID
INNER JOIN users_table E ON user_ID ON D.user_ID=E.user_ID
WHERE D.User_ID= 1 AND D.skill_ID = B.skill_ID

关于mysql - 在单个查询中查询多个 mySQL 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28468072/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com