【发布时间】:2017-04-18 01:23:49
【问题描述】:
我在以特定方式显示数据时遇到了一些问题。
我想展示 3 个或更多技能共有的机制。
我不确定如何计算常用技能,我尝试使用 EXIST 和子查询但无法弄清楚。
这是我必须显示所有具有他们技能的机械师的查询
Select distinct fName, lName , Skill from Person
inner join Worker on Person.personID = Worker.personID
inner join Mechanic on Worker.personID = Mechanic.personID
inner join Skills on Mechanic.personID = Skills.personID
order by fName
哪个显示
fName lName Skill
----------------------------
Carl Marx fuel systems
Jimmy John heating and cooling systems
Jimmy John exhaust systems
Jimmy John fluid and filter service
Mike Hawk resurface rotors and drums
Mike Hawk struts and suspension
Mike Hawk engine performance (tune-up)
Mike Hawk wheel alignment
Ricky Bobby wheel alignment
Ricky Bobby resurface rotors and drums
Ricky Bobby A/C systems
Ricky Bobby struts and suspension
Ricky Bobby heating and cooling systems
Terry Cruz sound systems
Terry Cruz cruise control
输出应该是
Ricky Bobby
Mike Hawk
提前致谢!让我知道我是否可以提供其他任何东西
【问题讨论】:
-
我们需要更多关于显示的信息。因为如果
{A,B}有 3 个共同技能和{A, C }不同技能但也有 3 个技能,你的显示是什么? -
嗯,我不确定我明白你在问什么,我只是想说明哪些机械师有共同的技能。如果 A 和 C 有 3 个技能但只有 1 个共同点,则什么都不会显示。 A 和 C 必须有 3 个共同的技能。如果 A 和 B 有 3 个共同技能,A 和 C 有 3 个共同技能,但 B 和 C 没有共同技能,则应该显示 A、B 和 C,因为他们至少与另一个人有 3 个共同点
-
根据你的例子,Jimmy John 和 Ricky bobby 没有任何共同的技能;并且根据您的要求,您需要一个查询来输出具有相同技能的机制,对吗?
-
对不起,你说得对,他们没有共同技能,输出应该是 Ricky Bobby 和 Mike Hawk
-
你已经完成了,复制后你可以使用简单的>=来显示结果
标签: mysql join attributes subquery exists