我有一个星球大战的项目,我的工作的统一。
在我的数据库,我有多个表和链接表。我想查询
“什么运输方式已经使用了雷伊,欧比旺·克诺比和C-3PO?”
答(显然)是千年隼。
我已经设置了使用内部连接的查询,但我被困在最后。
SELECT t.type AS OnlyTransportItCouldBe
FROM transport AS t
INNER JOIN person_transport AS pt
ON pt.transport_id = t.id
INNER JOIN person AS p
ON pt.person_id = p.id
WHERE p.name = 'Rey'
以上的回报3艘,但我confuddled至于怎么也查古本和黄花。我试着AND p.name = "Obi-Wan Kenobi"
和它返回空白。如果我尝试WHERE p.name = 'Rey', 'Obi-Wan Kenobi'
失败,如果我尝试WHERE p.name = 'Rey' AND 'Obi-Wan Kenobi'
,结果是空白。我知道这是很简单的东西,但我似乎无法找到解决的办法。
如果您的要求是得到普遍已经使用的运输方式雷伊,欧比旺·克诺比和C-3PO,那么你必须group by type
添加一个having
条款喜欢ethis:
SELECT t.type AS OnlyTransportItCouldBe
FROM transport AS t
INNER JOIN person_transport AS pt ON pt.transport_id = t.id
INNER JOIN person AS p ON pt.person_id = p.id
WHERE p.name IN ('Rey', 'Obi-Wan Kenobi', 'C-3PO')
GROUP BY t.type
HAVING COUNT(DISTINCT p.name) = 3
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句