В этом файле представлена база данных клиентов и база данных компакт-дисков.
Заказчики являются иностранными, указанными как buyerIDs
. Некоторые из клиентов/покупателей приобрели несколько копий одного конкретного компакт-диска.
Я создал файл в Notepad ++, импортировать его в PhpMyAdmin, я играл с разделом запросов, чтобы попытаться получить пример заявление:phpMyAdmin - SQL-запрос
Customer Gerald Bostick bought 3 copies of Thick as a Brick
Запрос я придумал это:
SELECT `customer`.`CustName`, `customer`.`CDPurchases`, `cd`.`Title`
FROM `customer`, `cd`
Что я получил каждый клиент в таблице закупают каждый CD:
Joe Doe 12 Ascension
Suzy Creamcheese 3 Ascension
Jane Doe 1 Ascension
Gerald Bostick 3 Ascension
Lisa Simpson NULL Ascension
Joe Doe 12 The Velvet Rope
Suzy Creamcheese 3 The Velvet Rope
Jane Doe 1 The Velvet Rope
Gerald Bostick 3 The Velvet Rope
Lisa Simpson NULL The Velvet Rope
Joe Doe 12 The Pecan Tree
Suzy Creamcheese 3 The Pecan Tree
Jane Doe 1 The Pecan Tree
Gerald Bostick 3 The Pecan Tree
Lisa Simpson NULL The Pecan Tree
установлен ли внешний ключ правильно? Я изменил его от
CONSTRAINT FK_Buyer FOREIGN KEY FK_Buyer (BuyerId)
REFERENCES Customer (CustID)
в
CONSTRAINT FK_Buyer FOREIGN KEY (BuyerId)
REFERENCES Customer (CustID)
Или это SET
заявление или мой запрос неправильно?
Мое кодирование:
DROP DATABASE IF EXISTS Library;
CREATE DATABASE Library;
USE Library;
DROP TABLE IF EXISTS Customer;
DROP TABLE IF EXISTS CD;
CREATE TABLE Customer (
CustID INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
CustName VARCHAR(20) NOT NULL,
CDPurchases INTEGER,
PRIMARY KEY (CustID)
);
CREATE TABLE CD (
CDID INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
Title VARCHAR(45) NOT NULL,
BuyerId INTEGER UNSIGNED,
Price FLOAT(6,2) UNSIGNED NOT NULL,
PRIMARY KEY (CDID),
CONSTRAINT FK_Buyer FOREIGN KEY (BuyerId)
REFERENCES Customer (CustID)
ON DELETE RESTRICT
ON UPDATE RESTRICT
);
INSERT INTO Customer VALUES (null, "Joe Doe", 12);
SET @joedoe := LAST_INSERT_ID();
INSERT INTO Customer VALUES (null, "Suzy Creamcheese", 3);
INSERT INTO Customer VALUES (null, "Jane Doe", 1);
SET @janedoe := LAST_INSERT_ID();
INSERT INTO Customer VALUES (null, "Gerald Bostick",3);
SET @geraldbostick := LAST_INSERT_ID();
INSERT INTO Customer VALUES (null, "Lisa Simpson", null);
INSERT INTO CD VALUES (null, "Thriller", @janedoe, 12.99);
INSERT INTO CD VALUES (null, "Grown and Sexy", null, 16.95);
INSERT INTO CD VALUES (null, "Ascension", null, 14.50);
INSERT INTO CD VALUES (null, "The Velvet Rope", null, 13.85);
INSERT INTO CD VALUES (null, "The Pecan Tree", null, 9.99);
INSERT INTO CD VALUES (null, "Condensate", null, 11.85);
INSERT INTO CD VALUES (null, "The Dana Owens Album", null, 9.95);
INSERT INTO CD VALUES (null, "Dustbowl", @joedoe, 17.95);
INSERT INTO CD VALUES (null, "Thick as a Brick", @geraldbostick, 10.95);
Спасибо за любую помощь.
Почему вы связываете количество покупок с покупателем? Как вы могли сказать, купил ли он 3 копии Толстого как Кирпич, а не 2 экземпляра Триллера и одного из Вознесения? У вас должна быть таблица, содержащая CDID и CustID; каждая строка будет представлять собой покупку. Это называется [нормализация базы данных] (http://support.microsoft.com/kb/283878). – miken32