1

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

在此处输入图像描述

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

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

但是当我尝试连接表时,缺少一些值。

    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;

结果: 连接 5 个表:entry、r_ele、k_ele、sense、gloss

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

4

1 回答 1

1

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

于 2013-08-20T23:09:35.900 回答