如何从不同的表中获取单个查询中的数据

时间:2013-12-09 11:07:22

标签: php mysql database select

我有三张不同的牌桌。

第一张表

第一个表是language(id,language_name)// id是主键。

第二张表

第二个表是经文(id,topic_id,verse_text)// id是主键,topic_id是外键。

第三表

第三个表是verse_translations(id,verse_id,language_id,translations_text)// id是主键,language_id是带有语言表的外键引用,// verse_id是带有verse表的外键引用。

现在我的问题是。

如何在一个MYSql查询中获取带有经文翻译和特定topic_id的可用语言的经文列表。

作为我在下面给出的一个例子。

verse_id | topic_id |    verse    |    verse_translation     |  language |

  1           1        verse here      translation here      English
                                       translation here      Spanish
                                       translation here      Japanese
                                       translation here      Italian

任何帮助将不胜感激。

感谢。

2 个答案:

答案 0 :(得分:1)

我认为应该这样做:

SELECT verse.id,
  verse.topic_id,
  verse.verse_text,
  verse_translations.translations_text,
  language.language_name
FROM verse
  INNER JOIN verse_translations ON verse.id = verse_translations.verse_id
  INNER JOIN language ON verse_translations.language_id = language.id
WHERE verse.topic_id = 1

请记住,所有行都已填充。因此,topic_id列始终为1

答案 1 :(得分:0)

请参阅此帖MySql Join three tables

根据您的需要进行更改。