0

这个想法是:“想象一本字典”。

我有词和定义。我有语言和活动语言。

例如,这意味着我可以拥有 5 种语言,但其中只有三种处于活动状态。

所以我需要为字典中的每一个单词,3行,它的定义。

所以我需要这个:

word BLABLA -> ES: bla
            -> EN: brabra
            -> FR: bleh

word BLIBLI -> ES: NULL
            -> EN: blig
            -> FR: NULL

...

如您所见,ES 和 FR 中的单词 BLIBLI 没有定义,我尝试过的每一种 JOIN 都给了我类似的东西:

word BLABLA -> ES: bla
            -> EN: brabra
            -> FR: bleh

word BLIBLI -> EN: blig

所以,并不是所有的结果。我已经尝试了 RIGHT 和 LEFT JOINS,但没有任何效果......

我严格需要为每个匹配的单词获取尽可能多的行数:

就像是:

SELECT *
FROM active_languages al
LEFT JOIN word_definitions wd ON(al.language_id = wd.language_id);

结果是第二个例子。

但是,如果我只是稍微修改一下最后一个查询:

SELECT *
FROM active_languages al
LEFT JOIN word_definitions wd ON(al.language_id = wd.language_id AND wd.word_id = 1);

这基本上在连接上添加了一个单词 ID,然后会发生这样的事情:

word BLABLA -> ES: bla
            -> EN: brabra
            -> FR: bleh

但当然,仅适用于单词 qith ID 1。

然后我需要遍历所有单词(实际上将是一组匹配的单词)。我知道这可能可以通过父查询来完成,该查询使用 WHERE 过滤处理所有单词,并将最后一个查询作为子查询,ID 单词与父查询链接。但我不知道该怎么做。它总是给我错误“MySQL 错误 #1054 - 未知列错误”...

请问我能做什么?

谢谢!

4

0 回答 0