2016-03-28 34 views
3

Bir ödev üzerinde çalışıyorum ve JOIN ... ON deyimlerini kullanıyoruz ve yanlış yaptığımdan emin değilim, ancak SQL kodumu veritabanına çalıştırdığımda hiçbir şey görüntülenmiyor.MySQL: Açıklamalara Katıl: Neden bu işe yaramıyor?

DÜZENLEME: Hata alma. Kod hatasız çalışır.

Neyi yanlış yaptığımı bilen var mı? Bu durum için INNER JOIN doğru türde birleşim midir?

/* Sierra McGivney - Lab5 - Additions */ 

/*Drop Tables*/ 
DROP TABLE IF EXISTS customers; 
DROP TABLE IF EXISTS orders; 
DROP TABLE IF EXISTS order_details; 
DROP TABLE IF EXISTS items; 
DROP TABLE IF EXISTS artists; 
DROP TABLE IF EXISTS employees; 

/*create tables*/ 
CREATE TABLE customers 
(
customer_id  INT, 
customer_first_name VARCHAR(20), 
customer_last_name VARCHAR(20) NOT NULL, 
customer_address VARCHAR(50) NOT NULL, 
customer_city  VARCHAR(20) NOT NULL, 
customer_state CHAR(2)  NOT NULL, 
customer_zip  CHAR(5) NOT NULL, 
customer_phone CHAR(10) NOT NULL, 
customer_fax  CHAR(10), 
CONSTRAINT customers_pk 
PRIMARY KEY (customer_id) 
); 

CREATE TABLE artists 
(
artist_id  INT  NOT NULL, 
artist_name VARCHAR(30), 
CONSTRAINT artist_pk 
PRIMARY KEY (artist_id) 
); 

CREATE TABLE items 
(
item_id INT  NOT NULL, 
title  VARCHAR(50) NOT NULL, 
artist_id INT NOT NULL, 
unit_price DECIMAL(9,2) NOT NULL, 
CONSTRAINT items_pk 
    PRIMARY KEY (item_id), 
CONSTRAINT items_fk_artists 
    FOREIGN KEY (artist_id) REFERENCES artists (artist_id) 
); 

CREATE TABLE employees 
(
employee_id  INT  NOT NULL, 
last_name  VARCHAR(20) NOT NULL, 
first_name  VARCHAR(20) NOT NULL, 
    manager_id  INT, 
CONSTRAINT employees_pk 
PRIMARY KEY (employee_id), 
CONSTRAINT emp_fk_mgr FOREIGN KEY (manager_id) REFERENCES employees(employee_id) 
); 

CREATE TABLE orders 
(
order_id  INT  NOT NULL, 
customer_id INT  NOT NULL, 
order_date DATE NOT NULL, 
shipped_date DATE, 
employee_id INT, 
CONSTRAINT orders_pk 
    PRIMARY KEY (order_id), 
CONSTRAINT orders_fk_customers 
    FOREIGN KEY (customer_id) REFERENCES customers (customer_id), 
CONSTRAINT orders_fk_employees 
    FOREIGN KEY (employee_id) REFERENCES employees (employee_id) 
); 

CREATE TABLE order_details 
(
order_id INT  NOT NULL, 
item_id INT  NOT NULL, 
order_qty INT  NOT NULL, 
CONSTRAINT order_details_pk 
    PRIMARY KEY (order_id, item_id), 
CONSTRAINT order_details_fk_orders 
    FOREIGN KEY (order_id) 
    REFERENCES orders (order_id), 
CONSTRAINT order_details_fk_items 
    FOREIGN KEY (item_id) 
    REFERENCES items (item_id) 
); 

/*insert rows into tables*/ 
INSERT INTO customers VALUES 
(1,'Korah','Blanca','1555 W Lane Ave','Columbus','OH','43221','6145554435','6145553928'), 
(2,'Yash','Randall','11 E Rancho Madera Rd','Madison','WI','53707','2095551205','2095552262'), 
(3,'Johnathon','Millerton','60 Madison Ave','New York','NY','10010','2125554800',NULL), 
(4,'Mikayla','Davis','2021 K Street Nw','Washington','DC','20006','2025555561',NULL), 
(5,'Kendall','Mayte','4775 E Miami River Rd','Cleves','OH','45002','5135553043',NULL), 
(6,'Kaitlin','Hostlery','3250 Spring Grove Ave','Cincinnati','OH','45225','8005551957','8005552826'), 
(7,'Derek','Chaddick','9022 E Merchant Wy','Fairfield','IA','52556','5155556130',NULL), 
(8,'Deborah','Davis','415 E Olive Ave','Fresno','CA','93728','5595558060',NULL), 
(9,'Karina','Lacy','882 W Easton Wy','Los Angeles','CA','90084','8005557000',NULL), 
(10,'Kurt','Nickalus','28210N Avenue Stanford','Valencia','CA','91355','8055550584','055556689'), 
(11,'Kelsey','Eulalia','7833 N Ridge Rd','Sacramento','CA','95887','2095557500','2095551302'), 
(12,'Anders','Rohansen','12345 E 67th Ave NW','Takoma Park','MD','24512','3385556772',NULL), 
(13,'Thalia','Neftaly','2508 W Shaw Ave','Fresno','CA','93711','5595556245',NULL), 
(14,'Gonzalo','Keeton','12 Daniel Road','Fairfield','NJ','07004','2015559742',NULL), 
(15,'Ania','Irvin','1099 N Farcourt St','Orange','CA','92807','7145559000',NULL), 
(16,'Dakota','Baylee','1033 NSycamore Ave.','Los Angeles','CA','90038','2135554322',NULL), 
(17,'Samuel','Jacobsen','3433 E Widget Ave','Palo Alto','CA','92711','4155553434',NULL), 
(18,'Justin','Javen','828 S Broadway','Tarrytown','NY','10591','8005550037',NULL), 
(19,'Kyle','Marissa','789 E Mercy Ave','Phoenix','AZ','85038','9475553900',NULL), 
(20,'Erick','Kaleigh','Five Lakepointe Plaza, Ste 500','Charlotte','NC','28217','7045553500',NULL), 
(21,'Marvin','Quintin','2677 Industrial Circle Dr','Columbus','OH','43260','6145558600','6145557580'), 
(22,'Rashad','Holbrooke','3467 W Shaw Ave #103','Fresno','CA','93711','5595558625','5595558495'), 
(23,'Trisha','Anum','627 Aviation Way','Manhatttan Beach','CA','90266','3105552732',NULL), 
(24,'Julian','Carson','372 San Quentin','San Francisco','CA','94161','6175550700',NULL), 
(25,'Kirsten','Story','2401 Wisconsin Ave NW','Washington','DC','20559','2065559115',NULL); 

INSERT INTO artists(artist_id,artist_name) VALUES 
(10,'Umani'), 
(11,'The Ubernerds'), 
(12,'No Rest For The Weary'), 
(13,'Burt Ruggles'), 
(14,'Sewed the Vest Pocket'), 
(15,'Jess & Odie'), 
(16,'Onn & Onn'); 

INSERT INTO items (item_id,title,artist_id,unit_price) VALUES 
(1,'Umami In Concert',10,17.95), 
(2,'Race Car Sounds',11,13), 
(3,'No Rest For The Weary',12,16.95), 
(4,'More Songs About Structures and Comestibles',12,17.95), 
(5,'On The Road With Burt Ruggles',13,17.5), 
(6,'No Fixed Address',14,16.95), 
(7,'Rude Noises',15,13), 
(8,'Burt Ruggles: An Intimate Portrait',13,17.95), 
(9,'Zone Out With Umami',10,16.95), 
(10,'Etcetera',16,17); 

INSERT INTO employees VALUES 
(1,'Smith','Cindy',null), 
(2,'Jones','Elmer',1), 
(3,'Simonian','Ralph',2), 
(9,'Locario','Paulo',1), 
(8,'Leary','Rhea',9), 
(4,'Hernandez','Olivia',9), 
(5,'Aaronsen','Robert',4), 
(6,'Watson','Denise',8), 
(7,'Hardy','Thomas',2); 

INSERT INTO orders VALUES 
(19,1,'2012-10-23','2012-10-28',6), 
(29,8,'2012-11-05','2012-11-11',6), 
(32,11,'2012-11-10','2012-11-13',NULL), 
(45,2,'2012-11-25','2012-11-30',NULL), 
(70,10,'2012-12-28','2013-01-07',5), 
(89,22,'2013-01-20','2013-01-22',7), 
(97,20,'2013-01-29','2013-02-02',5), 
(118,3,'2013-02-24','2013-02-28',7), 
(144,17,'2013-03-21','2013-03-29',NULL), 
(158,9,'2013-04-04','2013-04-20',NULL), 
(165,14,'2013-04-11','2013-04-13',NULL), 
(180,24,'2013-04-25','2013-05-30',NULL), 
(231,15,'2013-06-14','2013-06-22',NULL), 
(242,23,'2013-06-24','2013-07-06',3), 
(264,9,'2013-07-15','2013-07-18',6), 
(298,18,'2013-08-18','2013-09-22',3), 
(321,2,'2013-09-09','2013-10-05',6), 
(381,7,'2013-11-08','2013-11-16',7), 
(413,17,'2013-12-05','2014-01-11',7), 
(442,5,'2013-12-28','2014-01-03',5), 
(479,1,'2014-01-30','2014-03-03',3), 
(491,16,'2014-02-08','2014-02-14',5), 
(523,3,'2014-03-07','2014-03-15',3), 
(548,2,'2014-03-22','2014-04-18',NULL), 
(550,17,'2014-03-23','2014-04-03',NULL), 
(601,16,'2014-04-21','2014-04-27',NULL), 
(607,20,'2014-04-25','2014-05-04',NULL), 
(624,2,'2014-05-04','2014-05-09',NULL), 
(627,17,'2014-05-05','2014-05-10',NULL), 
(630,20,'2014-05-08','2014-05-18',7), 
(651,12,'2014-05-19','2014-06-02',7), 
(658,12,'2014-05-23','2014-06-02',7), 
(687,17,'2014-06-05','2014-06-08',NULL), 
(693,9,'2014-06-07','2014-06-19',NULL), 
(703,19,'2014-06-12','2014-06-19',7), 
(778,13,'2014-07-12','2014-07-21',7), 
(796,17,'2014-07-19','2014-07-26',5), 
(800,19,'2014-07-21','2014-07-28',NULL), 
(802,2,'2014-07-21','2014-07-31',NULL), 
(824,1,'2014-08-01',NULL,NULL), 
(827,18,'2014-08-02',NULL,NULL), 
(829,9,'2014-08-02',NULL,NULL); 

INSERT INTO order_details VALUES 
(381,1,1), 
(601,9,1), 
(442,1,1), 
(523,9,1), 
(630,5,1), 
(778,1,1), 
(693,10,1), 
(118,1,1), 
(264,7,1), 
(607,10,1), 
(624,7,1), 
(658,1,1), 
(800,5,1), 
(158,3,1), 
(321,10,1), 
(687,6,1), 
(827,6,1), 
(144,3,1), 
(479,1,2), 
(630,6,2), 
(796,5,1), 
(97,4,1), 
(601,5,1), 
(800,1,1), 
(29,10,1), 
(70,1,1), 
(165,4,1), 
(180,4,1), 
(231,10,1), 
(413,10,1), 
(491,6,1), 
(607,3,1), 
(651,3,1), 
(703,4,1), 
(802,3,1), 
(824,7,2), 
(829,1,1), 
(550,4,1), 
(796,7,1), 
(693,6,1), 
(29,3,1), 
(32,7,1), 
(242,1,1), 
(298,1,1), 
(479,4,1), 
(548,9,1), 
(627,9,1), 
(778,3,1), 
(19,5,1), 
(89,4,1), 
(242,6,1), 
(264,4,1), 
(550,1,1), 
(693,7,3), 
(824,3,1), 
(829,5,1), 
(829,9,1); 

/*Exercise One*/ 
SELECT customer_last_name as 'Last Name', customer_first_name as 'First Name', customer_phone as 'Phone' 
FROM customers 
ORDER BY customer_last_name, customer_first_name, customer_phone; 

/*Exercise Two*/ 
SELECT 
    CONCAT(customer_first_name, ' ' , customer_last_name) as 'Customer', customer_phone as 'Phone' 
FROM customers 
WHERE customer_state IN ('NY','NJ','DC') 
ORDER BY customer_phone; 

/*Exercise Three*/ 
SELECT DISTINCT customer_city as 'Cities' 
FROM customers 
ORDER BY customer_city DESC; 

/*Exercise Four*/ 
SELECT title as "Title", unit_price as 'Original', ROUND((unit_price - (unit_price * .25)), 2) as "Sale" 
FROM items 
ORDER BY unit_price ASC; 

/*Exercise Five*/ 
SELECT 
    CONCAT(customer_first_name, ' ' , customer_last_name) as 'Customer', customer_city as "City" 
FROM customers 
WHERE customer_zip LIKE '4%' 
ORDER BY customer_city; 

/*Exercise Six*/ 
SELECT order_id as "Order ID", DATE_FORMAT(order_date, '%M-%d-%Y') as "Order Date" 
FROM orders 
WHERE DATE_FORMAT(order_date, '%M') IN ('March', 'April', 'May') AND DATE_FORMAT(order_date, '%Y') IN ('2014') 
ORDER BY order_date; 

/*Exercise Seven*/ 
SELECT order_id as "Order ID", DATE_FORMAT(order_date, '%m-%d-%y') as "Ordered" 
FROM orders 
WHERE order_date BETWEEN '14-05-01' AND '14-05-31' 
ORDER BY order_date; 

/*Exercise Eight*/ 
SELECT order_ID as 'Order ID', customer_id as 'Customer ID', DATEDIFF(shipped_date, order_date) as 'Difference' 
FROM orders 
WHERE DATEDIFF(shipped_date, order_date) >= 15 
ORDER BY customer_id; 

/*Exercise Nine*/ 
SELECT order_id as 'Order ID', customer_id as 'Customer ID', DATE_FORMAT(order_date, '%m-%d-%y') as 'Date Ordered' 
FROM orders 
WHERE shipped_date IS NULL 
ORDER BY order_date DESC; 

/*Exercise Ten*/ 
SELECT order_id as 'Order ID', DATE_FORMAT(order_date, '%m-%d-%y') as 'Date Ordered', 
    DATE_FORMAT(shipped_date, '%m-%d-%y') as 'Date Shipped', DAYNAME(shipped_date) as 'Order Day' 
FROM orders 
WHERE DAYNAME(shipped_date) = 'Sunday' OR DAYNAME(shipped_date) = 'Saturday' 
ORDER BY DAYNAME(shipped_date); 

/*Exercise Eleven*/ 
SELECT customer_last_name as 'Last Name', customer_phone as 'Phone', customer_fax as 'Fax' 
FROM customers 
WHERE customer_fax IS NOT NULL 
ORDER BY customer_fax; 

/*Exercise Twelve*/ 
INSERT items VALUES 
(11,'Ode To My ERD',15,12.95); 

SELECT item_id as 'Item ID', title as 'Title', artist_id as 'Artist ID', unit_price as 'Unit Price' 
FROM items 
WHERE item_id >10; 

/*Exercise Thirteen*/ 
UPDATE items 
SET unit_price = 7.95 
WHERE item_id = 11; 

SELECT item_id as 'Item ID', title as 'Title', artist_id as 'Artist ID', unit_price as 'Unit Price' 
FROM items 
WHERE item_id > 10; 

/*Exercise Fourteen*/ 
DELETE FROM items 
WHERE item_id > 10; 
/*If it works, this should leave us with only TWO displays of an item with Item ID of 11.*/ 
SELECT item_id as 'Item ID', title as 'Title', artist_id as 'Artist ID', unit_price as 'Unit Price' 
FROM items 
WHERE item_id > 10; 

/*Exercise Fifteen*/ 
SELECT 
    CONCAT(customer_last_name, ', ', customer_first_name) as 'Customer', 
    CONCAT('(', SUBSTRING(customer_phone, 1, 3) , ')' , 
       SUBSTRING(customer_phone, 4, 3) , '-' , 
       SUBSTRING(customer_phone, 7, 4)) as 'Phone' 
FROM customers 
ORDER BY CONCAT(customer_last_name, ', ', customer_first_name); 

/*Week Five Lab*/ 
SELECT orders.order_ID as 'Order ID', orders.order_date as 'Order Date', 
    CONCAT(customers.customer_first_name, ' ', customers.customer_last_name) as 'Customer', customers.customer_city as 'City' 
FROM Orders 
JOIN Customers 
ON orders.customer_ID = customers.customer_ID 
WHERE customer.customer_state = 'OH' 
ORDER BY orders.order_date DESC;  
+2

Sorgu iyi görünüyor. Customer_state = 'OH' ile müşteri tablosunda kayıtlarınız var mı? –

+0

hata yaptınız mı? ya da sonuç ne istediğinizi değil .. örnek verileri göster ... – scaisEdge

+0

Ben de iyi göründüğünü düşündüm. 'OH' olan devletle ilgili kayıtlarım var ... Göstereceğim bir anda onları ekleyeceğim ... Kodun tamamını istersen bana haber ver ... çünkü koşarken hata yapmaz Sadece kodumun o segmenti için hiçbir şey gösterilmiyor. – Sierra

cevap

5

gerektiği

WHERE customer.customer_state = 'OH' 

olmak ...

SELECT orders.order_ID as 'Order ID' 
     , orders.order_date as 'Order Date' 
    , CONCAT(customers.customer_first_name, ' ', customers.customer_last_name) as 'Customer' 
    , customers.customer_city as 'City' 
FROM Orders 
JOIN Customers 
    ON orders.customer_ID = customers.customer_ID 
WHERE customer.customer_state = 'OH' 
ORDER BY orders 

tüm SQL (deyimini Üyelik ... kodun sonuna bulunabilir)

WHERE customers.customer_state = 'OH' 

?

Burada demo http://sqlfiddle.com/#!9/9c86c/1

(müşterilere olduğunu görüyorum)

+0

Aman Tanrım! Çok teşekkür ederim. Yapmam gereken aptalca bir şey. – Sierra

+0

Redmond'un yakınında yaşıyorum ve SQL Server'ın daha yeni sürümlerini alırsanız, bunu çözmek için yeterince akıllı, bunun gibi şeyleri karıştırmak zorunda değilsiniz. Açık kaynak kodlu yazılım ile ödediğiniz şeyi alırsınız. – 3z33etm

2

John sorunu bulduk bu. SQL istemcinizin bir hata vermediği beni şaşırtıyor.

Gelecekte, aşağıdaki gibi tablolarınızı takas etmeniz gerekir. Sorgunuzu daha kolay okumayı ve bu gibi hataların daha kolay tespit edilmesini sağlar.

/*Week Five Lab*/ 
SELECT o.order_ID as 'Order ID', o.order_date as 'Order Date', 
    CONCAT(c.customer_first_name, ' ', c.customer_last_name) as 'Customer', c.customer_city as 'City' 
FROM Orders o 
    JOIN Customers c 
     ON o.customer_ID = c.customer_ID 
WHERE c.customer_state = 'OH' 
ORDER BY o.order_date DESC; 
+0

YMMV, ama tek karakterli takma adların bunu okumayı daha kolay olduğunu sanmıyorum… – DarkDust

+0

Fuar noktası. Onları tam tablo isimlerine tercih ederim. Belki de kısa takma adlar en iyi örn. cust, ord. – wij

+0

Takma adlar, tablo adının öneki olarak kullanıldığı sütunlarda çoğunlukla yedeklenir. – ebyrob

İlgili konular