gpt4 book ai didi

mysql - 如何使用 WHERE 子句和 INNER JOIN 从列中获取所有行

转载 作者:行者123 更新时间:2023-11-29 16:08:35 25 4
gpt4 key购买 nike

我有一个查询,它搜索 Car 单词并返回结果,但是当我使用 INNER JOINS 搜索时,缺少一行 Car 单词。如何获取所有行?

select word.lemma, synset.pos, synset.definition 
from word
left join sense on word.wordid = sense.wordid
left join synset on sense.synsetid = synset.synsetid
where word.lemma = 'car'
order by synset.pos

结果:

enter image description here

SELECT 
a.lemma AS `word`,
c.definition,
c.pos AS `part of speech`,
d.sample AS `example sentence`
FROM
word a
INNER JOIN
sense b ON a.wordid = b.wordid
INNER JOIN
synset c ON b.synsetid = c.synsetid
INNER JOIN
sampletable d ON c.synsetid = d.synsetid
WHERE
a.lemma = 'car'

结果:

enter image description here

最佳答案

更改所有 INNER JOIN,以便他们改为 LEFT JOIN

该行正在消失,因为您声明的关系之一被破坏,并且 b 中没有与 a 中的该特定行匹配的行,或者 c 中没有与 b 中的特定行等匹配的行

通过使用左连接,数据库将保留 a 中的行而不是删除它,并为 b(或 c,无论是哪个表)中没有与 a 匹配的行的每个列值填充空值

通过查看 NULL,您将能够看到缺少的行在哪里,并可以决定添加它。如果您添加它,那么 INNER JOIN 将再次开始显示该行

关于mysql - 如何使用 WHERE 子句和 INNER JOIN 从列中获取所有行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55507312/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com