我正在制作一个数据库,用于处理项目的对话翻译。
我有一个项目表,一个对话表和一个翻译表。
每个表中的每个条目都有一个id列。
对话有一个projectID列,表示对话所属的项目。
translation有一个dialogueID列,指示正在翻译的对话条目。
为了帮助解释这个问题,我构造了一个伪查询:

SELECT *
FROM translation
WHERE (translation.dialogueID refers to dialogue where dialogue.projectID = X)

基本上,我想获取项目X的所有翻译条目。由于没有直接的路径从项目->翻译,我必须通过项目->对话,然后对话->翻译。在此期间,我选择只在翻译表中添加一个projectID,但它有点笨拙。

最佳答案

如果您知道项目(X)的id,则可以使用:

SELECT t.* FROM translation AS t, dialogue AS d
WHERE t.dialogueID = d.id AND d.projectID = X

如果您不知道项目id,但知道它的名称(X)或可以引用的内容,则可以使用:
SELECT t.* FROM translation AS t, dialogue AS d, project AS p
WHERE t.dialogueID = d.id AND d.projectID = p.id AND p.name='X'

关于php - 复杂(或非常非常简单)的MySQL查询?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31353619/

10-12 12:20