mysql - 如何根据具有相同 `id` 的另一行有效地选择列的字段?

标签 mysql sql

这是我的表格:

 id | title    | lang
----+----------+------
 1  | Moscow   | en
 1  | Москва   | ru
 2  | Helsinki | en 
 2  | Хельсинки| ru

我想通过 en 标题有效地获取 ru 标题。

目前,我首先获取条目的id,然后再手动进行另一个查询。

还有其他更优雅的解决方案吗?

最佳答案

一个SELF JOIN可能会有所帮助,并且通常是许多嵌套查询的更好解决方案,如果不是出于性能原因(请参阅: Join vs. sub-queryRewriting Subqueries as Joins )当然是为了可读性。

根据您的情况尝试:

SELECT movies_ru.title 
 FROM movies AS movies_ru 
 JOIN movies AS movies_en 
 ON movies_ru.id = movies_en.id
 WHERE movies_ru.lang = "ru"
 AND movies_en.lang = "en"
 AND movies_en.title = "The English Title"

关于mysql - 如何根据具有相同 `id` 的另一行有效地选择列的字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31648489/

相关文章:

php - 在循环内添加或插入条件

php - 在 php 中显示图像

sql - SQL Server 中 except 的替代

mysql - 为什么我会收到错误 #1136 - 列数与第 1 行的值数不匹配?

java - 从java执行mysql命令时出错

Mysqli查询内连接错误

sql - 为什么这个左连接评估为交叉连接?

mysql - 我应该用什么代替 IN?

java - RuntimeException : org. hibernate.exception.SQLGrammarException:无法执行查询

MySQL 正则表达式位于字符串中间