Liste Mitarbeiter Namen (Ename), die sowohl 49008 Postleitzahl Kunden und 49009 Postleitzahl Kunden haben.MySQL Ergebnisse finden basierend auf zwei verschiedenen Werten der gleichen Spalte
Ich habe Mühe, die obige Abfrage basierend auf den obigen Tabellen zu beantworten.
Wenn die Namen zwischen den Tabellen übereinstimmen, wird die Einschränkung angenommen.
Ich kann filtern, um Namen und zip einfach durch Links Joins und Gruppen von, aber kämpfen danach, ich weiß nicht, die richtige wo oder mit Aussage. Ich gehe davon aus, dass es durch eine Unterabfrage besser gemacht werden könnte, aber nicht sicher. Idealerweise eine einzelne Abfrage.
Bitte und danke.
1) Erstellen und Anweisungen zum Beispiel Daten einfügen: "Liste Mitarbeiter (Namen), die beide 49008-zipcode Kunden und 49009-zipcode Kunden"
Create table Employees (EM_Eno INT NOT NULL, EM_Ename VARCHAR(50), EM_Hire_Date DATE, PRIMARY KEY(EM_Eno));
Create table Customers (Customers_Cno INT NOT NULL, Customers_Cname VARCHAR(50), Customers_Street VARCHAR(50), Customers_Zip INT, Customers_Phone INT, primary key(Customers_Cno));
Create table Orders (Orders_Ono INT NOT NULL, Orders_Cno INT, Orders_Eno INT, Orders_Received DATE, Orders_Shipped DATE, primary key(Orders_Ono));
insert into Orders values
(1,301,501,20161010,20161011);
(2,302,501,20161011,20161012);
(3,303,502,20161110,20161111);
(4,304,502,20161110,20161112);
(5,305,502,20161110,20161113);
(6,306,503,20161112,20161114);
(7,307,501,20161112,20161113);
(8,308,503,20161112,20161115);
(9,309,503,20161115,20161120);
(10,300,501,20161112,20161113);
insert into Customers values
(300,'Bryan','100 street',49009,1234567890),
(301,'Ryan','101 street',49008,1234567890),
(302,'Nick','102 street',49009,1234567890),
(303,'Nicholas','103 street',49009,1234567890),
(304,'Alexa','104 street',49009,1234567890),
(305,'Tori','105 street',49008,1234567890),
(306,'Scarlet','106 street',49008,1234567890),
(307,'Heather','100 street',49009,1234567890),
(308,'Amanda','107 street',49008,1234567890),
(309,'James','108 street',49008,1234567890);
insert into Employees values
(501,'Robert',20041010),
(502,'Sam',20050110),
(503,'Brandy',20050710);
2) Ideal Endergebnis ist die Beantwortung der Abfrage
3) Bester Versuch so weit:
select Employees.EM_Ename
, Customers.Customers_Zip
from Employees
left
join Orders
on Employees.EM_Eno = Orders.Orders_Eno
left
join Customers
on Orders.Orders_Cno = Customers.Customers_Cno
group
by Employees.EM_Ename
, Customers.Customers_Zip;
Vielen Dank für die Anleitung, wie man richtig ersuchen. Ich glaube, ich habe eine klarere Anfrage gestellt. Lass es mich wissen, wenn es noch unklar ist. –
wo ist ein Filter für Werte gegen Rowset-Returns, hat ist ein Filter für Gruppen gegen Spalten. – Edward