MySQL 要返回的重复名称

标签 mysql

我有一个具有以下语法的表格:

 | ID | institution_course1_id | institution_course2_id |

其中 application1_id 和 application2_id 引用同一个表。我需要获取两者的值(所以换句话说我想检索每个应用程序的名称)

我尝试加入表格,但结果中仍然只收到 1 个姓名。这是我使用的 SQL:

 SELECT * FROM `client_applications` 
LEFT JOIN `institution_courses` `name1` 
   ON `client_applications`.`institution_course1_id`=`name1`.`id` 
LEFT JOIN  `institution_courses` `name2` 
   ON `client_applications`.`institution_course2_id`=`name2`.`id` 
WHERE `client_applications`.`client_id`=?

有没有办法让我在结果中返回 client_applications 中的所有行,然后根据上述内容添加 2 个单独的键作为“name1”和“name2”?

最佳答案

我猜测您的问题是应用程序读取结果。尝试为这两个名称输入不同的别名(“列名称”):

SELECT ca.*, name1.name as name1, name2.name as name2
FROM `client_applications` ca LEFT JOIN
     `institution_courses` `name1`
      ON ca.`institution_course1_id` = `name1`.`id` LEFT JOIN 
      `institution_courses` `name2`
      ON ca.`institution_course2_id` = `name2`.`id`
WHERE ca.`client_id` = ?;

否则您的查询看起来不错(尽管我也为第一个表添加了别名)。

关于MySQL 要返回的重复名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26234456/

相关文章:

mysql - 同时查询多个mySQL表

mysql - 加载 30GB CSV 文件时失去与 MySQL 服务器的连接

php - 在同一行的第二次出现时在列内打印不同的值

c# - 如何在c#中正确删除MySQL表?

mysql - 我的 Firebase 云函数给出 SequelizeConnectionError : connect ETIMEDOUT error whenever I query my MySql DB

mysql - 礼品卡事件表(记录)

php - 使用取消链接功能删除文件php

php json_encode 仅返回数组的第一行

php - 从 MySQL 表中选择 MAX 数不起作用

mysql - 有什么方法可以对 DISTINCT 的结果进行分组并获得正确分组的行数?