我可以编写什么sql语句来获取专辑的所有链接轨道

时间:2016-04-14 11:43:37

标签: php mysql

我试图想到一个我可以在MySQL中编写的SQL语句,我可以在其中获得专辑中包含的所有曲目。我设置它的方式是Album_id,它是我的专辑表的主键,以外键的形式链接在轨道表内。这样,每个曲目行都链接到专辑表中的专辑。

我将在下面的表格布局中进一步详细说明:

tbl_Albums

正如您所看到的,我将Album_id作为主键,并且它已自动增加,因此当输入新行时,ID将自动更新。

class A {
    public element;
    public test;
    public doSomething;

    constructor(id) {
        if (id) {
            if (window === this as any) {
                return new A(id);//<-Error in typescript
            }

            this.element = document.getElementById(id);
            this.test = function () {
                console.log("testing"); return this;
            };
            this.doSomething = function () {
                console.log("doing something"); return this;
            };

            return this;
        }
    }
}

let result = ((A as any)("test") as A).doSomething();
result = new A("test").doSomething();

tbl_Tracks

在曲目表中,我使用album_id设置了一个外键,因此我将曲目链接到特定的专辑。

CREATE TABLE `tbl_Albums` (
`Album_id` int(11) NOT NULL auto_increment,
`Album_Name` varchar(32) NOT NULL,
`Number_Of_Tracks` int(11) NOT NULL,
`Genre` varchar(32) NOT NULL,
`Artist_id` int(11) NOT NULL,
 PRIMARY KEY  (`Album_id`),
 KEY `Artist_id` (`Artist_id`),
 CONSTRAINT `tbl_Albums_ibfk_2` 
 FOREIGN KEY (`Artist_id`) REFERENCES `tbl_Artist` (`Artist_id`))

我已经正确地链接了表格,但是我试图想出一个MySQL语句,它可以让我显示链接到特定专辑的所有曲目,并且到目前为止都是空的。然后我尝试将代码实现为php表单,供用户用来列出曲目

非常感谢任何帮助。

3 个答案:

答案 0 :(得分:1)

SELECT tbl_Albums.Album_id, tbl_Albums.Album_Name, tbl_Tracks.Track_id, tbl_Tracks.Track_Name, tbl_Tracks.Album_id
FROM tbl_Albums

INNER JOIN tbl_Tracks ON tbl_Albums.Album_id = tbl_Tracks.Album_id WHERE
  `tbl_Albums`.`Album_Name`='Your album name'
ORDER BY
   `tbl_Tracks`.`Track_id`;

答案 1 :(得分:0)

    SELECT
      `t2`.*
    FROM
      `tbl_Albums` `t1`
    INNER JOIN
      `tbl_Tracks` `t2`
    ON
      `t2`.`Album_id`=`t1`.`Album_id`
    WHERE
      `t1`.`Album_Name`='Name of Your album'
    ORDER BY
       `t2`.`Track_id`;

答案 2 :(得分:0)

我不知道我是否理解你的问题是正确的,但是一个简单的选择应该可以解决这个问题吗?

如果您知道相册ID,例如5:

SELECT * FROM `tbl_Tracks` WHERE `Album_id` = 5;

如果你知道专辑名称:

SELECT `t`.* FROM `tbl_Tracks` AS `t` 
LEFT JOIN `tbl_Albums` AS `a` ON `a`.`Album_id` = `t`.`Album_id`
WHERE `a`.`Album_Name` = 'Thriller';