SQL Fiddle Complex Join ничего не отображает - PullRequest
0 голосов
/ 26 апреля 2018

http://sqlfiddle.com/#!9/73ad5f/41

CREATE TABLE customers ( 
  customer_id     INT(10) NOT NULL AUTO_INCREMENT, 
  first_name      VARCHAR(20) NOT NULL,
  last_name       VARCHAR(20) NOT NULL,
  street_address  VARCHAR(30),
  apt_number      INT(5),
  city            CHAR(30),
  state           CHAR(2),
  zip_code        INT(5),
  home_phone      INT(10),
  mobile_phone    INT(10),
  other_phone     INT(10),
  PRIMARY KEY (customer_id)
);
INSERT INTO customers(first_name, last_name, street_address, apt_number, city, state, zip_code, 
home_phone, mobile_phone, other_phone)
VALUES("Z","S","Lovely Roses",911,"Hills","CA",90210, NULL, NULL, NULL);

CREATE TABLE donuts (
  donut_id      INT(10) NOT NULL AUTO_INCREMENT, 
  name          VARCHAR(30), 
  description   VARCHAR(50), 
  unit_price    DECIMAL(8,3), 
  PRIMARY KEY (donut_id) 
);

INSERT INTO donuts (donut_id,name,description,unit_price)  
VALUES (1,"Maple Bar","Delicious Donut covered with maple creamy icing",1.99);

CREATE TABLE salesorders ( 
  donut_order_id        INT(10) NOT NULL AUTO_INCREMENT, 
  customer_id           INT, 
  date                  DATETIME, 
  special_handling_note TEXT, 
  PRIMARY KEY (donut_order_id), 
  FOREIGN KEY (customer_id) REFERENCES customers(customer_id) 
);

INSERT INTO salesorders ( donut_order_id,date,special_handling_note )
VALUES( 0000001,"2018-04-22","Please include plates and napkins");

CREATE TABLE salesorderslineitem ( 
  donut_order_id      INT(10) NOT NULL, 
  donut_id            INT(10) NOT NULL, 
  qty                 INT(10) NOT NULL, 
  PRIMARY KEY (donut_order_id, donut_id),
  FOREIGN KEY (donut_order_id) 
  REFERENCES salesorders(donut_order_id), 
  FOREIGN KEY (donut_id) REFERENCES donuts(donut_id)
);

INSERT INTO salesorderslineitem (donut_order_id,donut_id, qty) 
VALUES (0000001,1, 12);

CREATE VIEW AllCusomters AS
SELECT
    CONCAT(first_name, CHAR(32), last_name) AS FullName,
    street_address,
    apt_number,
    city,
    state,
    zip_code,
    home_phone,
    mobile_phone,
    other_phone

FROM customers;

CREATE INDEX DonutNameField ON donuts(name);


HERE's my QUERY where I am not getting anything to display.

SELECT 
    first_name,
    last_name,
    street_address,
    apt_number,
    city,
    state,
    zip_code,
    home_phone,
    mobile_phone,
    other_phone,
    name,
    description,
    unit_price,
    date,
    qty,
    special_handling_note,
    salesorderslineitem.donut_order_id,
    donuts.donut_id,
    customers.customer_id

    FROM customers,donuts,salesorders,salesorderslineitem

    WHERE salesorders.customer_id = customers.customer_id
    AND salesorderslineitem.donut_order_id = salesorders.donut_order_id
    AND salesorderslineitem.donut_id = donuts.donut_id

    ORDER BY salesorders.donut_order_id;

1 Ответ

0 голосов
/ 26 апреля 2018

Как указано в комментариях, у вас нет подходящего клиента. Строка, которую вы указали для продавцов, имела значение NULL, поскольку вы не указали значение.

INSERT INTO salesorders ( donut_order_id,date,special_handling_note )
VALUES( 0000001,"2018-04-22","Please include plates and napkins");

Я изменил это на

INSERT INTO salesorders ( donut_order_id, customer_id,date,special_handling_note )
VALUES( 0000001,1,"2018-04-22","Please include plates and napkins");

FIDDLE

Вам также следует подумать об использовании правильного синтаксиса соединения, поскольку его гораздо проще понять.

FROM customers
INNER JOIN salesorders on salesorders.customer_id = customers.customer_id
INNER JOIN salesorderslineitem on salesorderslineitem.donut_order_id = salesorders.donut_order__id
INNER JOIN donuts on donuts.donut_id = salesorderslineitem.donut_id
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...