我在MySQL
中創建了一個名爲Formed, Track, Album, Band, Customers
的表,我使用MySQL Workbench
。在Formed
表中,我有一個樂隊成立的年份,樂隊成立的國家和城市以及樂隊成員。在Track
表中,我有歌曲,曲目計數,專輯中有多少首歌曲,專輯的標題以及總曲目的持續時間。在Album
表中,我有價格,標題和流派。在Band
表中,我有唱片公司,在Customers
表中,我有姓名,電話號碼,電子郵件以及他們是否已付款。通過MySQL中的特定樂隊獲取所有專輯
但是,我想嘗試創建一個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;
如果您有一個適當的關係結構,你可以輕鬆地做到這一點。如果不是這是任何人的猜測。什麼模式正在使用這些? – tadman
@tadman模式?我正在使用名爲'Tables'的架構。 – smitthy
什麼是'Formed'?一個'樂隊'只形成一次。因此'Formed'應該是'Band'中的一列。 「BandMembers」應該是一個單獨的表格。即你的模式是垃圾。 –