【发布时间】:2020-06-26 12:49:08
【问题描述】:
下面是我试图解决的场景的描述。
我有两张桌子。下面显示了一个称为显示的表。
id(INT) name(VARCHAR) start_date(DATE) end_Date(DATE) person_id(INT)
5 Whales 2019-01-01 2019-05-31 7
19 Universe 2019-02-01 2019-03-31 13
25 Grizzlies 2019-03-01 2019-06-30 7
46 Homosapiens? 2019-07-01 2019-09-31 13
另一个名为 people 的表如下所示。
id(INT) name(VARCHAR) background(TEXT)
7 Ron Swanson Nonconformist
13 Tom Haverford Hustler
71 Andy Dwyer Goofball
我正在寻找编写一个 SQL 查询来查找所有显示器的所有名称以及与显示器相关联的人员的姓名。如果显示没有人,则显示不应出现在结果中。即使一个人没有显示器,这个人的名字也应该出现在最终结果中。正确的查询应显示以下结果(见下表)。
Ron Swanson Whales
Tom Haverford Universe
Ron Swanson Grizzlies
Tom Haverford Homosapiens?
Andy Dwyer
我想出的查询是
SELECT p.name, d.name from displays d, people p WHERE d.person_id = p.id;
减去 Andy Dwyer 后得到正确结果。我对如何包括 Andy Dwyer 感到困惑,我错过了什么?
【问题讨论】:
-
这是一个常见问题解答。在考虑发布之前,请阅读手册和谷歌任何错误消息或您的问题/问题/目标的许多清晰、简洁和精确的措辞,有和没有您的特定字符串/名称和站点:stackoverflow.com 和标签;阅读许多答案。如果您发布问题,请使用一个短语作为标题。修正你的研究。请参阅How to Ask 和投票箭头鼠标悬停文本。
-
请在代码问题中给出minimal reproducible example--cut & paste & runnable code,包括最小的代表性示例输入作为代码;期望和实际输出(包括逐字错误消息);标签和版本;明确的规范和解释。给出您可以给出的最少代码,即您显示的代码可以通过您显示的代码扩展为不正常。 (调试基础。)对于包含 DBMS 和 DDL(包括约束和索引)和输入为格式化为表的代码的 SQL。
标签: mysql sql select inner-join where-clause