gpt4 book ai didi

mysql - 获取 MySQL 中特定乐队的所有专辑

转载 作者:行者123 更新时间:2023-11-29 02:17:54 30 4
gpt4 key购买 nike

我在 MySQL 中创建了几个名为 Formed、Track、Album、Band、Customers 的表,我正在使用 MySQL Workbench .在 Formed 表中,我有乐队成立的年份、乐队成立的国家和城市以及乐队成员。在 Track 表中,我有歌曲、轨道计数(即专辑中有多少首歌曲)、专辑名称以及轨道的总时长。在 Album 表中,我有价格、标题和流派。在 Band 表中,我有唱片标签,在 Customers 表中,我有姓名、电话号码、电子邮件以及他们是否已付款。

但是我想尝试创建一个 SQL 脚本来获取一个乐队的所有专辑。我见过的唯一方法是使用

SELECT Albums,Band FROM Album;

或者

SELECT * FROM Album;

但我不能 100% 确定是否有更好、更有效的方法。

编辑

我的代码是:

SET FOREIGN_KEY_CHECKS=0;

DROP TABLE IF EXISTS Formed;
DROP TABLE IF EXISTS Album;
DROP TABLE IF EXISTS Band;
DROP TABLE IF EXISTS Customers;
DROP TABLE IF EXISTS Track;

SET FOREIGN_KEY_CHECKS=1;

CREATE TABLE Formed(
FormedID int AUTO_INCREMENT,
YearFormed int,
CountryFormed varchar(50),
CityFormed varchar(50),
BandMembers varchar(400),
PRIMARY KEY(FormedID))
ENGINE=InnoDB;

CREATE TABLE Track (
TrackID int AUTO_INCREMENT,
AlbumID int,
Songs varchar(200),
TrackNumber varchar(20),
Title varchar(30),
TrackDuration varchar(6),
PRIMARY KEY(TrackID))
ENGINE=InnoDB;

CREATE TABLE Album(
AlbumID int AUTO_INCREMENT,
TrackID int,
BandID int,
KEY(TrackID),
KEY(BandID),
Price int,
PublicationDate varchar(11),
Title varchar(30),
Genre varchar(36),
PRIMARY KEY(AlbumID))
ENGINE=InnoDB;

CREATE TABLE Band(
BandID int AUTO_INCREMENT,
AlbumID int,
KEY(AlbumID),
RecordLabel varchar(50),
PRIMARY KEY(BandID))
ENGINE=InnoDB;

CREATE TABLE Customers (
CustomerID int AUTO_INCREMENT,
CName varchar(20),
CPhone varchar(12),
CEmail varchar(50),
CPPaid varchar(50),
CPDate date,
PRIMARY KEY (CustomerID))
ENGINE=InnoDB;

ALTER TABLE Track
ADD FOREIGN KEY (AlbumID) REFERENCES Album(AlbumID)ON DELETE SET NULL ON UPDATE CASCADE;

ALTER TABLE Album
ADD FOREIGN KEY (TrackID) REFERENCES Track(TrackID)ON DELETE SET NULL ON UPDATE CASCADE;

ALTER TABLE Album
ADD FOREIGN KEY (BandID) REFERENCES Band(BandID)ON DELETE SET NULL ON UPDATE CASCADE;

ALTER TABLE Band
ADD FOREIGN KEY (AlbumID) REFERENCES Album(AlbumID)ON DELETE SET NULL ON UPDATE CASCADE;

最佳答案

使用连接,例如,如果您想要特定乐队的标题:

Select a.Title from Album a
Inner Join Band b on a.BandID = b.BandID
Where a.BandID = X

关于mysql - 获取 MySQL 中特定乐队的所有专辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36632738/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com