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

标签 php mysql database select

我有三个不同的表。

第一张 table

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

第二张表

第二个表是 verse(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

我们将不胜感激。

谢谢。

最佳答案

我认为应该这样做:

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

关于php - 如何从不同表中获取单个查询中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20469055/

相关文章:

php - file_exists() 使用带有 ~ 的路径时返回 false,其中包含波浪号

php - 带有 WordPress 的 Windows 上的目录分隔符不正确

php - Laravel 4 - JOIN - 相同的列名

mysql - 在 Mac 上将数据库导入 MAMP

mysql - 如何选择或区分同一个表中一个字段值相同但另一个字段值不同的两行

sql-server - 请解释一下 SQL Azure "master"数据库

mysql - 如何在 AWS RDS MySQL 数据库实例上进行负载平衡或增强数据库性能

javascript - 从 Google Maps API 到 php 表单的坐标变量

php - 使用 AJAX 和 PHP 时数据库中的行未被删除

mysql - 在 SELECT mysql 中使用 IF 和 JOIN 时出现错误