- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我有三个表:
教练
设备
运动
这是 SQL FIDDLE 页面的链接,这样您就可以看到准备好的表格,以便更好地理解我的意思。 SQL Fiddle prepared tables
每个字段的简要说明c_id = coach id, cName = coach name, e_id = equipment id, eName = ename of the equipment, termUsed = 到目前为止设备已经使用的学期数, sports = 他们教授的运动(有些教授多项)
运动表已标准化,其中针对他们教授的每项运动都有一个字段。有些教练只教授一项运动,有些则教授多项运动。根据我在 StakOverFlow 上看到的其他帖子,我被建议规范化数据。
主键 Coach(c_id), Equipment(e_id)
外键
装备(c_id) 引用教练(c_id)
运动(c_id)引用教练(c_id)
我需要什么
(结果集在列中)
[Coach A_id][Coach A_name][Equipment A_id][Equipment A_Name][Common Sport][coach B_id][Coach B_name][Equipment B_id][Equipment B_name]
我需要一个结果集,它返回两个教练的 ID 和姓名、他们教授的常见运动,以及根据他们的术语使用(设备使用的术语数相等)匹配的设备(属于每个教练)为了)。
*过去一周我能弄清楚的是:*
SELECT DISTINCT sa.c_id, sb.c_id, sb.sport, coach.name
FROM sportsTaught sa, sportsTaught sb
JOIN coach ON coach.c_id = sb.c_id
WHERE sa.sports = sb.sports
AND sa.c_id <> sb.c_id
ORDER BY sb.c_id;
到目前为止,这就是我所能弄清楚的;一个查询,它允许我匹配并显示两位教练的结果,他们分享他们教授的一项或多项常见运动。这只解决了问题的一部分,因为它将教练与他们教授的一项常见运动相匹配,但它也不会根据他们使用的术语数量来匹配设备(由个别教练拥有)。
目标
这个项目的重点是在社区中心内匹配教练(他们自己购买了设备),根据一项共同的运动来交换设备(同样磨损)。请记住,这是在一个低收入社区,所以我们没有太多预算可以使用。所以我正在创建这个数据库作为降低成本和更足智多谋的解决方案。还可以帮助教练获得同样磨损的设备……这样就不会有人得到比他们交易的设备更旧的设备。我们很穷..所以我们尽量足智多谋。 Volley 也可以用作足球来教 children 。这不是一个专业团队,而是一个针对低收入地区 child 的社区中心外展计划。
我之前曾因发布低质量的帖子而受到警告。我已阅读必要的文件,并已尽力遵守所有规则和准则。在发这篇文章之前,我也搜索了一个星期来寻找答案。
最佳答案
改掉使用叉积的习惯,尤其不要将叉积与显式JOIN
混合使用。只需始终如一地使用 JOIN
。
要解决您的问题,您需要两次加入 coach
表,然后两次加入 equipment
表,每个教练一次。然后要求termUsed
相同,但名称不同。
SELECT ca.c_id coachA_id, ca.cName coachA_name, ea.e_id equipmentA_id, ea.eName equipmentA_name,
sa.sports,
cb.c_id coachB_id, cb.cName coachB_name, eb.e_id equipmentB_id, eb.eName equipmentB_name
FROM sportTaught sa
JOIN sportTaught sb ON sa.sports = sb.sports AND sa.c_id < sb.c_id
JOIN coach ca ON ca.c_id = sa.c_id
JOIN coach cb ON cb.c_id = sb.c_id
JOIN equipment ea ON ea.c_id = ca.c_id
JOIN equipment eb ON eb.c_id = cb.c_id AND ea.termUsed = eb.termUsed AND ea.eName != eb.eName
ORDER BY ca.c_id
关于mysql - 多个变量、表和参数合并到一个查询中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48466469/
简而言之:我想从可变参数模板参数中提取各种选项,但不仅通过标签而且通过那些参数的索引,这些参数是未知的 标签。我喜欢 boost 中的方法(例如 heap 或 lockfree 策略),但想让它与 S
我可以对单元格中的 excel IF 语句提供一些帮助吗? 它在做什么? 对“BaselineAmount”进行了哪些评估? =IF(BaselineAmount, (Variance/Baselin
我正在使用以下方法: public async Task Save(Foo foo,out int param) { ....... MySqlParameter prmparamID
我正在使用 CodeGear RAD Studio IDE。 为了使用命令行参数测试我的应用程序,我多次使用了“运行 -> 参数”菜单中的“参数”字段。 但是每次我给它提供一个新值时,它都无法从“下拉
我已经为信用卡类编写了一些代码,粘贴在下面。我有一个接受上述变量的构造函数,并且正在研究一些方法将这些变量格式化为字符串,以便最终输出将类似于 号码:1234 5678 9012 3456 截止日期:
MySql IN 参数 - 在存储过程中使用时,VarChar IN 参数 val 是否需要单引号? 我已经像平常一样创建了经典 ASP 代码,但我没有更新该列。 我需要引用 VarChar 参数吗?
给出了下面的开始,但似乎不知道如何完成它。本质上,如果我调用 myTest([one, Two, Three], 2); 它应该返回元素 third。必须使用for循环来找到我的解决方案。 funct
将 1113355579999 作为参数传递时,该值在函数内部变为 959050335。 调用(main.c): printf("%d\n", FindCommonDigit(111335557999
这个问题在这里已经有了答案: Is Java "pass-by-reference" or "pass-by-value"? (92 个回答) 关闭9年前。 public class StackOve
我真的很困惑,当像 1 == scanf("%lg", &entry) 交换为 scanf("%lg", &entry) == 1 没有区别。我的实验书上说的是前者,而我觉得后者是可以理解的。 1 =
我正在尝试使用调用 SetupDiGetDeviceRegistryProperty 的函数使用德尔福 7。该调用来自示例函数 SetupEnumAvailableComPorts .它看起来像这样:
我需要在现有项目上实现一些事件的显示。我无法更改数据库结构。 在我的 Controller 中,我(从 ajax 请求)传递了一个时间戳,并且我需要显示之前的 8 个事件。因此,如果时间戳是(转换后)
rails 新手。按照多态关联的教程,我遇到了这个以在create 和destroy 中设置@client。 @client = Client.find(params[:client_id] || p
通过将 VM 参数设置为 -Xmx1024m,我能够通过 Eclipse 运行 Java 程序-Xms256M。现在我想通过 Windows 中的 .bat 文件运行相同的 Java 程序 (jar)
我有一个 Delphi DLL,它在被 Delphi 应用程序调用时工作并导出声明为的方法: Procedure ProduceOutput(request,inputs:widestring; va
浏览完文档和示例后,我还没有弄清楚 schema.yaml 文件中的参数到底用在哪里。 在此处使用 AWS 代码示例:https://github.com/aws-samples/aws-proton
程序参数: procedure get_user_profile ( i_attuid in ras_user.attuid%type, i_data_group in data_g
我有一个字符串作为参数传递给我的存储过程。 dim AgentString as String = " 'test1', 'test2', 'test3' " 我想在 IN 中使用该参数声明。 AND
这个问题已经有答案了: When should I use "this" in a class? (17 个回答) 已关闭 6 年前。 我运行了一些java代码,我看到了一些我不太明白的东西。为什么下
我输入 scroll(0,10,200,10);但是当它运行时,它会传递字符串“xxpos”或“yypos”,我确实在没有撇号的情况下尝试过,但它就是行不通。 scroll = function(xp
我是一名优秀的程序员,十分优秀!