我需要一些查詢幫助。需要幫助以獲得精確的MYSQL查詢
首先,這裏的表:
--
-- Create table produit
--
CREATE TABLE produit (
ref_prod integer primary key,
name_prod text not null,
color text ,
weight integer
);
--
-- Create table factory
--
CREATE TABLE factory (
ref_factory integer primary key,
name_factory text not null,
city text not null
);
--
-- Create table shop
--
CREATE TABLE shop (
ref_shop integer primary key,
name_shop text not null,
city text not null
);
--
-- Create table provenance
--
CREATE TABLE provenance (
ref_prod integer,
ref_factory integer,
ref_shop integer,
quantity integer,
constraint cle_prim primary key (ref_prod, ref_factory, ref_shop)
);
--
-- Data for Name: shop
--
INSERT INTO shop (ref_shop, name_shop, city) VALUES (14, 'Stock10', 'Paris');
INSERT INTO shop (ref_shop, name_shop, city) VALUES (16, 'JaiTout', 'Marseille');
INSERT INTO shop (ref_shop, name_shop, city) VALUES (18, 'EnGros', 'Bordeaux');
INSERT INTO shop (ref_shop, name_shop, city) VALUES (20, 'PrixBas', 'Toulouse');
INSERT INTO shop (ref_shop, name_shop, city) VALUES (22, 'BasPrix', 'Marseille');
INSERT INTO shop (ref_shop, name_shop, city) VALUES (24, 'DuBon', 'Lyon');
INSERT INTO shop (ref_shop, name_shop, city) VALUES (26, 'DuBeau', 'Toulouse');
INSERT INTO shop (ref_shop, name_shop, city) VALUES (28, 'BasDeGamme', 'Dublin');
INSERT INTO shop (ref_shop, name_shop, city) VALUES (30, 'PasCher', 'Lyon');
--
-- Data for Name: produit
--
INSERT INTO produit (ref_prod, name_prod, color, weight) VALUES (1, 'tabouret', 'rouge', 5);
INSERT INTO produit (ref_prod, name_prod, color, weight) VALUES (2, 'evier', 'bleu', 65);
INSERT INTO produit (ref_prod, name_prod, color, weight) VALUES (3, 'bureau', 'jaune', 45);
INSERT INTO produit (ref_prod, name_prod, color, weight) VALUES (4, 'lampe a petrole', 'vert', 15);
INSERT INTO produit (ref_prod, name_prod, color, weight) VALUES (5, 'ordinateur', 'rouge', 10);
INSERT INTO produit (ref_prod, name_prod, color, weight) VALUES (6, 'telephone', 'bleu', 8);
INSERT INTO produit (ref_prod, name_prod, color, weight) VALUES (7, 'tabouret', 'violet', 1);
INSERT INTO produit (ref_prod, name_prod, color, weight) VALUES (8, 'evier', 'bleu', 65);
INSERT INTO produit (ref_prod, name_prod, color, weight) VALUES (9, 'tabouret', 'orange', 3);
INSERT INTO produit (ref_prod, name_prod, color, weight) VALUES (10, 'lampe halogene', 'rose', 11);
INSERT INTO produit (ref_prod, name_prod, color, weight) VALUES (11, 'lampe a souder', 'noir', 3);
INSERT INTO produit (ref_prod, name_prod, color, weight) VALUES (12, 'telephone', 'bleu', 2);
INSERT INTO produit (ref_prod, name_prod, color, weight) VALUES (13, 'casse-noix', 'vert', 1);
INSERT INTO produit (ref_prod, name_prod, color, weight) VALUES (14, 'casse-pied', 'marron', 55);
INSERT INTO produit (ref_prod, name_prod, color, weight) VALUES (15, 'casse-oreille', 'violet', 15);
INSERT INTO produit (ref_prod, name_prod, weight) VALUES (16, 'casserole', 'bleu');
INSERT INTO produit (ref_prod, name_prod, weight) VALUES (17, 'bottes', 'rouge');
INSERT INTO produit (ref_prod, name_prod) VALUES (18, 'lampe halogene');
INSERT INTO produit (ref_prod, name_prod, weight, weight) VALUES (19, 'table', 'rouge', 10);
INSERT INTO produit (ref_prod, name_prod, weight) VALUES (20, 'telephone', 3);
INSERT INTO produit (ref_prod, name_prod, weight, weight) VALUES (21, 'evier', 'bleu', 65);
INSERT INTO produit (ref_prod, name_prod, weight) VALUES (22, 'evier', 105);
INSERT INTO produit (ref_prod, name_prod, weight) VALUES (23, 'evier', 115);
--
-- Data for Name: provenance
--
INSERT INTO provenance (ref_prod, ref_factory, ref_shop, quantity) VALUES (1, 109, 14, 80);
INSERT INTO provenance (ref_prod, ref_factory, ref_shop, quantity) VALUES (1, 109, 16, 100);
INSERT INTO provenance (ref_prod, ref_factory, ref_shop, quantity) VALUES (1, 302, 16, 213);
INSERT INTO provenance (ref_prod, ref_factory, ref_shop, quantity) VALUES (2, 189, 30, 213);
INSERT INTO provenance (ref_prod, ref_factory, ref_shop, quantity) VALUES (3, 402, 14, 315);
INSERT INTO provenance (ref_prod, ref_factory, ref_shop, quantity) VALUES (4, 200, 18, 985);
INSERT INTO provenance (ref_prod, ref_factory, ref_shop, quantity) VALUES (5, 302, 20, 858);
INSERT INTO provenance (ref_prod, ref_factory, ref_shop, quantity) VALUES (6, 213, 16, 315);
INSERT INTO provenance (ref_prod, ref_factory, ref_shop, quantity) VALUES (6, 109, 22, 458);
INSERT INTO provenance (ref_prod, ref_factory, ref_shop, quantity) VALUES (7, 109, 16, 213);
INSERT INTO provenance (ref_prod, ref_factory, ref_shop, quantity) VALUES (8, 302, 16, 2000);
INSERT INTO provenance (ref_prod, ref_factory, ref_shop, quantity) VALUES (9, 189, 30, 175);
INSERT INTO provenance (ref_prod, ref_factory, ref_shop, quantity) VALUES (10, 402, 14, 100);
INSERT INTO provenance (ref_prod, ref_factory, ref_shop, quantity) VALUES (11, 109, 16, 750);
INSERT INTO provenance (ref_prod, ref_factory, ref_shop, quantity) VALUES (11, 302, 16, 100);
INSERT INTO provenance (ref_prod, ref_factory, ref_shop, quantity) VALUES (12, 189, 30, 315);
INSERT INTO provenance (ref_prod, ref_factory, ref_shop, quantity) VALUES (12, 200, 16, 589);
INSERT INTO provenance (ref_prod, ref_factory, ref_shop, quantity) VALUES (12, 189, 22, 213);
INSERT INTO provenance (ref_prod, ref_factory, ref_shop, quantity) VALUES (13, 402, 14, 499);
INSERT INTO provenance (ref_prod, ref_factory, ref_shop, quantity) VALUES (14, 109, 18, 213);
INSERT INTO provenance (ref_prod, ref_factory, ref_shop, quantity) VALUES (15, 189, 20, 1958);
INSERT INTO provenance (ref_prod, ref_factory, ref_shop, quantity) VALUES (15, 189, 16, 333);
INSERT INTO provenance (ref_prod, ref_factory, ref_shop, quantity) VALUES (16, 302, 14, 49);
INSERT INTO provenance (ref_prod, ref_factory, ref_shop, quantity) VALUES (17, 109, 18, 213);
INSERT INTO provenance (ref_prod, ref_factory, ref_shop, quantity) VALUES (16, 189, 20, 18);
INSERT INTO provenance (ref_prod, ref_factory, ref_shop, quantity) VALUES (16, 213, 16, 33);
INSERT INTO provenance (ref_prod, ref_factory, ref_shop, quantity) VALUES (18, 200, 18, 187);
INSERT INTO provenance (ref_prod, ref_factory, ref_shop, quantity) VALUES (18, 302, 16, 88);
INSERT INTO provenance (ref_prod, ref_factory, ref_shop, quantity) VALUES (18, 213, 14, 315);
INSERT INTO provenance (ref_prod, ref_factory, ref_shop, quantity) VALUES (20, 109, 22, 458);
INSERT INTO provenance (ref_prod, ref_factory, ref_shop, quantity) VALUES (20, 402, 14, 13);
--
-- Data for Name: factory
--
INSERT INTO factory (ref_factory, name_factory, city) VALUES (109, 'martin', 'Nantes');
INSERT INTO factory (ref_factory, name_factory, city) VALUES (189, 'leroux', 'Marseille');
INSERT INTO factory (ref_factory, name_factory, city) VALUES (213, 'dupont', 'Bordeaux');
INSERT INTO factory (ref_factory, name_factory, city) VALUES (402, 'peugeot', 'Toulouse');
INSERT INTO factory (ref_factory, name_factory, city) VALUES (200, 'peugeot', 'Marseille');
INSERT INTO factory (ref_factory, name_factory, city) VALUES (302, 'rover', 'Londres');
--
-- Name: provenance_ref_shop_fkey; Type: FK CONSTRAINT;
--
ALTER TABLE provenance
ADD CONSTRAINT provenance_ref_shop_fkey FOREIGN KEY (ref_shop) REFERENCES shop(ref_shop);
--
-- Name: provenance_ref_prod_fkey; Type: FK CONSTRAINT;
--
ALTER TABLE provenance
ADD CONSTRAINT provenance_ref_prod_fkey FOREIGN KEY (ref_prod) REFERENCES produit(ref_prod);
--
-- Name: provenance_ref_factory_fkey; Type: FK CONSTRAINT;
--
ALTER TABLE provenance
ADD CONSTRAINT provenance_ref_factory_fkey FOREIGN KEY (ref_factory) REFERENCES factory(ref_factory);
我需要一個查詢至極得到(X,Y)店的引用至極由同一工廠生產同一產品的供應。 我只能使用SELECT,WHERE和HAVING。
我開始喜歡的東西:
SELECT shop.ref_shop AS "shop1",shop.ref_shop AS "shop2"
FROM shop,
factory,
provenance,
produit
WHERE shop.ref_shop=provenance.ref_shop
AND produit.ref_prod=provenance.ref_prod
AND factory.ref_factory=provenance.ref_factory
AND shop1<>shop2
,但我不知道怎麼只有店裏的引用至極由同一工廠和它的外觀一樣的別名不與工作中取得的同一產品的供應哪裏。 感謝您的幫助。
請給出一些輸入和預期輸出的例子。 – Tomas