mysql - 查询对同一个表的多个引用

标签 mysql sql

我有 2 个表。一个带有联系信息,另一个带有城市 ID 和名称。示例。

Table 1 Contacts
ID,Name, HomeCity, BusinessCity
123,Ben,1,2

Table 2 Cities
CityID, CityName
1 Austin
2 Boston

我想创建一个简单的查询来显示 Ben 的家乡城市和商业城市。

我不明白如何包含两次引用 CityName 的查询。

到目前为止我只有:

SELECT Contacts.Name, Contacts.HomeCity, Contacts.BusinessCity, Cities.CityName
FROM Contacts,Cities
WHERE Contacts.ID=123 AND Contacts.HomeCity=Cities.CityID

我只是不明白。我希望查询显示的内容是:

Name, Home City, Business City
Ben, Austin, Boston

最佳答案

语法可能不完美,但这个一般概念应该可行:

SELECT 
    Contacts.Name, 
    (SELECT CityName FROM Cities WHERE Contacts.HomeCity=Cities.CityID) AS HomeCity, 
    (SELECT CityName FROM Cities WHERE Contacts.BusinessCity=Cities.CityID) AS BusinessCity
FROM Contacts WHERE Contacts.ID=123

关于mysql - 查询对同一个表的多个引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19285301/

相关文章:

mysql - 使用子查询排除值

创建计划事件时 MySQL 出错

mysql - 带有虚拟数据的 UNION SELECT

java - 如何在SQL语句中使用生成的id?

sql - 如何制作一个以用户定义的表类型为参数并在sql中返回相同的函数?

mysql - 当存在自动递增的主键时,在 MySql 中插入忽略

mysql - 查询问题排名系统MYSQL

php - 创建带有条目备份/恢复选项的 PHP CMS

php - SELECT COUNT 包含日期和类型

php - MYSQL COUNT 不为 Left Join 和 Group By 返回 0