在SQLite中连接表后缺少值

时间:2013-08-20 22:59:27

标签: android join sqlite group-by

这是SQLite数据库中表之间的关系。在那里,我试图加入5个表。

enter image description here

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

上面的查询返回此结果(这是正常的)。 这个缺少的单词旁边的表格为红色! r_ele table

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

    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;

结果: joing 5 tables:entry, r_ele, k_ele, sense, gloss

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

1 个答案:

答案 0 :(得分:1)

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