这是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'中的某些值?
答案 0 :(得分:1)
将INNER JOIN更改为LEFT JOIN以包括左表中的所有记录,即使右表中没有匹配的记录。