我有一个类似于字典的数据库。本质上,有六个表:
words_a (id_a, word_a) 包含语言 A 的所有单词
words_b (id_b, word_b) 包含语言 B 的所有单词
words (id, id_a, id_b) 连接语言 A 的单词及其对应的语言 B 翻译
categories (id, cat_id) 为words -table中的每个 worda-wordb-relationship 分配类别
现在我想做的是获取某个类别的所有翻译。
我选择一个类别 id (cat_id) 并获取该类别中的所有词-词-关系 (id),然后为这些关系获取两个对应的词 ID (id_a 和 id_b):
SELECT id_a, id_b
FROM words, (
SELECT *
FROM `categories`
WHERE cat_id =6
) AS temp
WHERE words.id = temp.id
这给了我一个表,其中包含语言 A 中所有单词的 ID 以及它们在类别 6 中对应语言 B 的翻译的 ID。现在我需要 ID 的实际单词。
SELECT word_a, word_b FROM words_a,words_b, (
SELECT id_a,id_b
FROM words, (
SELECT *
FROM categories
WHERE cat_id=6 ) AS t
WHERE words.id = t.id ) AS temp
WHERE ??? )
我的 where 子句应该是什么样的?