【问题标题】:Missing values after joining tables in SQLite在 SQLite 中加入表后缺少值
【发布时间】:2013-08-21 07:09:35
【问题描述】:

这是 SQLite 数据库中表之间的关系。我正在尝试加入 5 张桌子。

    SELECT * FROM r_ele
WHERE r_ele.value LIKE 'でも%'

上面的查询返回这个结果(没关系)。 这个缺少的单词旁边的表格是红色的!

但是当我尝试连接表时,一些值丢失了。

    SELECT e.id AS entry_id,
re.value AS re_value,
GROUP_CONCAT(DISTINCT ke.value) AS ke_value,
GROUP_CONCAT(DISTINCT g.value) AS g_value
FROM (entry e
INNER JOIN k_ele ke ON e.id = ke.fk
INNER JOIN r_ele re ON e.id = re.fk
INNER JOIN sense s ON e.id = s.fk
INNER JOIN gloss g ON s.id = g.fk)
WHERE g.lang IS NULL AND re_value LIKE 'でも%'
GROUP BY re.value
ORDER BY re_value;

结果:

我做错了什么?我应该怎么做才能避免丢失表 'r_ele' 中的某些值?

【问题讨论】:

    标签: android join sqlite group-by


    【解决方案1】:

    将 INNER JOIN 更改为 LEFT JOIN 以包括左表中的所有记录,即使右表中没有匹配的记录。

    【讨论】:

    • 如果我将所有 INNER JOIN 更改为 LEFT JOIN 不会有问题:FROM (entry e LEFT JOIN k_ele ke ON e.id = ke.fk LEFT JOIN r_ele re ON e.id = re.fk LEFT JOIN sense s ON e.id = s.fk LEFT JOIN Gloss g ON s.id = g.fk)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-18
    • 2021-08-05
    • 1970-01-01
    • 2016-03-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多