MySQL,有没有办法使用多个别名?

标签 mysql

假设我们有一个包含表的数据库:
“艺术家”(列:姓名、ID)和
“歌曲”(标题、composers_id、songwriters_id)。

我想打印带有 Composer 姓名和词曲作者姓名的歌曲。 我已经成功地打印了 Composer 的名字:

SELECT title, name AS Composers_Name 
  FROM artist, song 
    WHERE song.composers_id = artist.id;

我无法获取词曲作者的名字..
我试过的是这样的:

SELECT title, name AS Composers_Name, name AS Songwriters_name
  FROM artist, song 
    WHERE song.composers_id = artist.id AND song.songwriters_id = artist.id;

但是这会返回作曲者和词曲作者是同一个人的所有歌曲。 我正在考虑使用 JOIN,但我不确定如何......

最佳答案

您必须从 table artist 中选择 2 次。

select s.title, a1.name AS Composer, a2.name as songwriter
from song s, artist a1, artist a2 
where s.composers_id = a1.id and s.songwriters_id = a2.id;

假设 Composers 和 Songwriters 都存储在表 artist 中。

关于MySQL,有没有办法使用多个别名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13537170/

相关文章:

mysql - 将某些用户列中的数据平均值与同一列中的另一个用户进行比较

mysql - 将MySql中的varchar转换为给定的日期格式

mysql - 只计算 MySQL 查询中连接的不同元素

PHP 混淆了 ä、ö、ü 等字母

php - 如果没有添加文件,如何在 MySQL 数据库单元中插入 "Null"值?

mysql - 如何匹配连接表和相关表中的列名和值?

php - PDO安装-启用pdo_mysql

MySQL 拒绝在 SET 子句中使用 SELECT 对 UPDATE 查询使用索引

mysql - 我可以创建一个过程或函数来删除 mysql 中的参数表吗?

在 TeSTLink 安装中找不到 MySql