2016-03-29 5 views
0

なんらかの理由で、最初の2つのテーブルは、SQL FIDDLEをSQL Fiddleに単独で配置すると、SQL FIDDLEでクエリされます。私はテーブルにすべてのテーブルを置くと、クエリと私はメッセージが表示されます:テーブルdb_9_9eecb7d.customerは存在しません。ヒントや助けをいただければ幸いです。ここで単純なSQLクエリを実行できません

は、私が書いたコードです:

CREATE TABLE Customer 
( CustomerID INT(255) NOT NULL AUTO_INCREMENT, 
    FirstName VARCHAR(255) NOT NULL, 
    LastName VARCHAR(255) NOT NULL, 
    StreetAddress VARCHAR(255) NOT NULL, 
    Apartment VARCHAR(255) NOT NULL, 
    City VARCHAR(255) NOT NULL, 
    State VARCHAR(2) NOT NULL, 
    ZipCode CHAR(9) NOT NULL, 
    HomePhone CHAR(10) NOT NULL, 
    MobilePhone CHAR(10) NOT NULL, 
    OtherPhone CHAR(10) NOT NULL, 
    PRIMARY KEY(CustomerID) 
); 

INSERT INTO Customer 
    (FirstName, LastName, StreetAddress, Apartment, City, State, 
     ZipCode, HomePhone, MobilePhone, OtherPhone) 
VALUES('Joe', 'Shmoe', '190 Pine St', ' A 708 ', 'Polk', 
    'WA', 98408, 4173231111, 1234567788, 5555551212); 

SELECT CustomerID, (CONCAT(firstname, ' ', Lastname)) as FullName, StreetAddress, Apartment, City, State, ZipCode, Homephone, mobilephone, otherphone FROM customer; 

CREATE TABLE Donut 
( 
    DonutID INT(255) NOT NULL AUTO_INCREMENT, 
    Name VARCHAR(255) NOT NULL, 
    Description VARCHAR(255) NOT NULL, 
    UnitPrice DECIMAL(3, 2) NOT NULL, 
    PRIMARY KEY(DonutID 
); 

INSERT INTO Donut(Name, Description, UnitPrice) 
VALUES('Plain', 'Plain Donut', '1.50'), ('Glazed', 'Glazed Donut', '1.75'), ('Cinnamon', 'Cinnamon Donut', '1.75'), ('Chocolate', 'Chocolate Donut', '1.75'), ('Sprinkle', 'Sprinkle Donut', '1.75'), ('Gluten-Free', 'Gluten-Free Donut', '2.00'); 

CREATE INDEX DonutName ON Donut(Name); 

CREATE TABLE DonutOrder 
    (DonutOrderID INT(255) NOT NULL, 
     DonutID INT(255) NOT NULL, 
     Quantity INT(255), 
     PRIMARY KEY(DonutOrderID, donutID), 
     INDEX Donut(donutID)); 

INSERT INTO DonutOrder(DonutID, Quantity) 
VALUES((SELECT DonutID FROM Donut WHERE DonutID = 1), 1), 
     ((SELECT DonutID FROM Donut WHERE DonutID = 2), 5), 
     ((SELECT DonutID FROM Donut WHERE DonutID = 3), 12), 
     ((SELECT DonutID FROM Donut WHERE DonutID = 4), 3), 
     ((SELECT DonutID FROM Donut WHERE DonutID = 5), 4), 
     ((SELECT DonutID FROM Donut WHERE DonutID = 6), 5); 

CREATE TABLE SalesInvoice 
(
    CustomerID INT(255) NOT NULL, 
    DonutOrderID INT(255) NOT NULL AUTO_INCREMENT, 
    `Date` 
    date NOT NULL, 
    Spec_Hnd_Inst VARCHAR(255), 
    PRIMARY KEY(DonutOrderID), 
    INDEX Customer(CustomerID), 
    FOREIGN KEY(CustomerID) REFERENCES Customer(CustomerID), 
    INDEX DonutOrder(donutOrderID)); 

INSERT INTO SalesInvoice(CustomerID, DonutOrderID, `Date`, Spec_Hnd_Inst) VALUES(1, 1, '20160319', 'Extra Sugar'); 
+1

テーブル名と文の大文字小文字が*正確に*一致することを確認してください。いくつかのオペレーティングシステムでは(これは大きな問題です)(http://stackoverflow.com/questions/6134006/are-table-names-in-mysql-case-sensitive)。 – tadman

答えて

0

Thisが動作しているようです。

スキーマ

CREATE TABLE Customer 
(CustomerID INT(255) NOT NULL AUTO_INCREMENT, 
FirstName VARCHAR(255) NOT NULL, 
LastName VARCHAR(255) NOT NULL, 
StreetAddress VARCHAR(255) NOT NULL, 
Apartment VARCHAR(255) NOT NULL, 
City VARCHAR(255) NOT NULL, 
State VARCHAR(2) NOT NULL, 
ZipCode CHAR(9) NOT NULL, 
HomePhone CHAR(10) NOT NULL, 
MobilePhone CHAR(10) NOT NULL, 
OtherPhone CHAR(10) NOT NULL, 
PRIMARY KEY (CustomerID)); 
INSERT INTO Customer 
(FirstName, LastName, StreetAddress, Apartment, City, State, 
ZipCode, HomePhone, MobilePhone, OtherPhone) 
VALUES ('Joe', 'Shmoe', '190 Pine St', ' A 708 ', 'Polk', 
'WA', 98408, 4173231111, 1234567788, 5555551212); 
SELECT CustomerID, (CONCAT (firstname, ' ', Lastname)) as FullName, StreetAddress, Apartment, City, State, ZipCode, Homephone, mobilephone, otherphone FROM customer; 

CREATE TABLE Donut 
(DonutID INT(255) NOT NULL AUTO_INCREMENT, 
Name VARCHAR(255) NOT NULL, 
Description VARCHAR(255) NOT NULL, 
UnitPrice DECIMAL(3,2) NOT NULL, 
PRIMARY KEY (DonutID)); 
INSERT INTO Donut (Name, Description, UnitPrice) 
VALUES ('Plain', 'Plain Donut', '1.50'), 
('Glazed', 'Glazed Donut', '1.75'), 
('Cinnamon', 'Cinnamon Donut', '1.75'), 
('Chocolate', 'Chocolate Donut', '1.75'), 
('Sprinkle', 'Sprinkle Donut', '1.75'), 
('Gluten-Free', 'Gluten-Free Donut', '2.00'); 
CREATE INDEX DonutName ON Donut (Name); 

CREATE TABLE DonutOrder 
(DonutOrderID INT (255) NOT NULL AUTO_INCREMENT, 
DonutID INT(255) NOT NULL, 
Quantity INT(255), 
PRIMARY KEY (DonutOrderID, donutID), 
INDEX Donut(donutID)); 
INSERT INTO DonutOrder (DonutID, Quantity) 
VALUES ((SELECT DonutID FROM Donut WHERE DonutID = 1), 1), 
    ((SELECT DonutID FROM Donut WHERE DonutID = 2), 5), 
    ((SELECT DonutID FROM Donut WHERE DonutID = 3), 12), 
    ((SELECT DonutID FROM Donut WHERE DonutID = 4), 3), 
    ((SELECT DonutID FROM Donut WHERE DonutID = 5), 4), 
    ((SELECT DonutID FROM Donut WHERE DonutID =6), 5); 

CREATE TABLE SalesInvoice 
(CustomerID INT(255) NOT NULL, 
DonutOrderID INT(255) NOT NULL AUTO_INCREMENT, 
Date date NOT NULL, 
Spec_Hnd_Inst VARCHAR(255), 
PRIMARY KEY (DonutOrderID), 
INDEX Customer (CustomerID), 
FOREIGN KEY (CustomerID) REFERENCES Customer(CustomerID), 
INDEX DonutOrder (donutOrderID)); 

INSERT INTO SalesInvoice (CustomerID, DonutOrderID, Date,Spec_Hnd_Inst) VALUES (1, 1, '20160319', 'Extra Sugar'); 

を構築し、挿入された値

select * from SalesInvoice; 

テーブル 'db_9_9eecb7d.customer' をチェックするために右に以下を追加するには、左側に次の行を追加します

このエラーは発生しませんが、テーブルの顧客が見つかりませんでした。データベースは構成によっては大文字と小文字が区別されるので、代わりにCustomerを使用してください。

+0

単純なクエリで作業しているので、誰もそれを何もしませんでしたか?私は何の変化も見なかった。これはSQLFoodの問題ですか?変更があった場合は、今すぐに動作します! – user3078797

関連する問題