【发布时间】:2020-03-14 18:03:48
【问题描述】:
我正在为 Uni 开展一个星球大战项目。
在我的数据库中,我有多个表和链接表。我正在查询
“Rey、Obi-Wan Kenobi 和 C-3PO?”
答案(显然)是千年隼号。
我已经使用 INNER JOIN 设置了查询,但我被困在了最后。
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 艘船,但我对如何检查老本和金棒感到困惑。我试过AND p.name = "Obi-Wan Kenobi",它返回空白。如果我尝试WHERE p.name = 'Rey', 'Obi-Wan Kenobi' 它会失败,如果我尝试WHERE p.name = 'Rey' AND 'Obi-Wan Kenobi',结果是空白的。我知道这很简单,但我似乎找不到解决方案。
【问题讨论】:
-
好的,所以我试过了 - 或者 WHERE p.name IN ('Rey', 'Obi-Wan Kenobi', 'C-3PO') - 它出错了,所以我尝试了 - WHERE p.name IN ('Rey', 'Obi-Wan Kenobi', 'C-3PO') - 它返回了所有与它们相关的船只。
-
请通过编辑而不是 cmets 澄清。
-
请在代码问题中给出minimal reproducible example--cut & paste & runnable code,包括最小的代表性示例输入作为代码;期望和实际输出(包括逐字错误消息);标签和版本;明确的规范和解释。给出您可以给出的最少代码,即您显示的代码可以通过您显示的代码扩展为不正常。 (调试基础。)对于包含 DBMS 和 DDL(包括约束和索引)和输入为格式化为表的代码的 SQL。 How to Ask 停止尝试编写您的总体目标并从给定的代码中解释您的期望以及原因。
-
这是一个常见问题解答。在考虑发布之前,请阅读手册和谷歌任何错误消息或您的问题/问题/目标的许多清晰、简洁和精确的措辞,有和没有您的特定字符串/名称和站点:stackoverflow.com 和标签;阅读许多答案。如果您发布问题,请使用一个短语作为标题。请参阅How to Ask 和投票箭头鼠标悬停文本。除非我们努力(重新重新)写清楚,否则我们无法推理、交流或搜索。