Re:
געשריבן: זונטאג יולי 19, 2020 11:52 pm
אלטער האט געשריבן:
קענסט העלפן דא?
קומט אריין פאר א גלעזעלע שנאפס און א גוט ווארט https://www.ivelt.com/forum/
אלטער האט געשריבן:
קנאפער ידען האט געשריבן: צ/ק
איך בין זייער רוי אין mysql (אין דעטאבעיסעס בכלל), אבער אפשר קען מיר איינער העלפן דא.
איך האב איין טעיבל מיט דעטא וואס איינער פון די פיעלדס האבן א ליסטע פון נומערן כזה:
קאוד: וועל אויס אלע
115, 116, 127, 118, 145
איך האב א צווייטע טעיבל וואס פאר יעדער פון דער נומערן (לעטס סעי אינעם קאלום ID) האט ער א נומער (קאלום NUMBER). יעצט איך וויל מאכן עפעס א קווערי אויפן ערשטן טעיבל אין אין די רעזאלטס זאל אנשטאט 115, 116, 127, 118, 145 שטייט די נומערן וואס זיי זענען אינעם אנדערע טעיבל. וויאזוי מאכט מען דאס?
ממה נפשך האט געשריבן: דארפסט מאכן א join דורך די קאמאן קאלום און נאכדעם נעם די number field.
מארגן קען איך לייגן די פונקטליכע query אז ס'וועט העלפן.
קאוד: וועל אויס אלע
+-------------+-------------------------+
| customer_id | cars_brand_id |
+-------------+-------------------------+
| 1 | 115, 116, 127, 118, 145 |
| 2 | 224, 118, 154 |
| 3 | 22, 184, 164 |
| 4 | 455, 1223, 89 |
| 5 | 75, 116, 192 |
+-------------+-------------------------+
קאוד: וועל אויס אלע
+----+-----------+
| id | name |
+----+-----------+
| 1 | Moshe |
| 2 | Zurech |
| 3 | Yukel |
| 4 | Yisroel |
| 5 | Shimshoin |
+----+-----------+
קאוד: וועל אויס אלע
+--------+------------+
| car_id | brand |
+--------+------------+
| 115 | Acura |
| 116 | Alfa Romeo |
| 127 | Audi |
| 118 | BMW |
| 145 | Bentley |
| 224 | Buick |
| 154 | Cadillac |
| 22 | Chevrolet |
| 184 | Chrysler |
| 164 | Dodge |
| 455 | Fiat |
| 1223 | Ford |
| 89 | GMC |
| 75 | Genesis |
| 192 | Honda |
+--------+------------+
קאוד: וועל אויס אלע
+---------------+---------------------------------------+
| Customer Name | Owns Car Brands |
+---------------+---------------------------------------+
| Moshe | Acura, Alfa Romeo, Audi, BMW, Bentley |
| Zurech | Buick, BMW, Cadillac |
+---------------+---------------------------------------+
קנאפער ידען האט געשריבן:
קאוד: וועל אויס אלע
CREATE TABLE #Car_Models
(
Cust_ID int,
Models NVARCHAR(50)
)
INSERT INTO #Car_Models (Cust_ID,Models) VALUES( 1,'115,116,127,118,145')
INSERT INTO #Car_Models (Cust_ID,Models) VALUES( 2,'224,118,154')
INSERT INTO #Car_Models (Cust_ID,Models) VALUES( 3,'22,184,164')
INSERT INTO #Car_Models (Cust_ID,Models) VALUES( 4,'455,1223,89')
CREATE TABLE #Customers
(
ID int,
Cust_Name NVARCHAR(50)
)
INSERT INTO #Customers (ID, Cust_Name) VALUES (1,'Moshe')
INSERT INTO #Customers (ID, Cust_Name) VALUES (2,'Zurech')
INSERT INTO #Customers (ID, Cust_Name) VALUES (3,'Yukel')
INSERT INTO #Customers (ID, Cust_Name) VALUES (3,'Yisroel')
CREATE TABLE #Brands
(
Car_ID int,
Brand_Name NVARCHAR(50)
)
INSERT INTO #Brands (Car_ID,Brand_Name) VALUES (115,'Car_1')
INSERT INTO #Brands (Car_ID,Brand_Name) VALUES (116,'Car_2')
INSERT INTO #Brands (Car_ID,Brand_Name) VALUES (127,'Car_3')
INSERT INTO #Brands (Car_ID,Brand_Name) VALUES (118,'Car_5')
INSERT INTO #Brands (Car_ID,Brand_Name) VALUES (145,'Car_6')
INSERT INTO #Brands (Car_ID,Brand_Name) VALUES (224,'Car_7')
INSERT INTO #Brands (Car_ID,Brand_Name) VALUES (154,'Car_8')
INSERT INTO #Brands (Car_ID,Brand_Name) VALUES (22,'Car_9')
INSERT INTO #Brands (Car_ID,Brand_Name) VALUES (184,'Car_10')
INSERT INTO #Brands (Car_ID,Brand_Name) VALUES (164,'Car_11')
INSERT INTO #Brands (Car_ID,Brand_Name) VALUES (455,'Car_12')
INSERT INTO #Brands (Car_ID,Brand_Name) VALUES (1223,'Car_13')
INSERT INTO #Brands (Car_ID,Brand_Name) VALUES (89,'Car_14')
INSERT INTO #Brands (Car_ID,Brand_Name) VALUES (75,'Car_15')
INSERT INTO #Brands (Car_ID,Brand_Name) VALUES (192,'Car_16')
קאוד: וועל אויס אלע
--Split by columns into a new row
SELECT #Car_Models.Cust_ID, value Model
INTO #Splited1
FROM #Car_Models
CROSS APPLY string_split(#Car_Models.Models,',')
--JOIN brands with cusomers
SELECT s.Cust_ID, b.Brand_Name
INTO #BrandsAndCustomers
FROM #Splited1 s
JOIN #Brands b ON s.Model = b.Car_ID
--Combine in 1 results
WITH CTE AS
(
SELECT t1.Cust_ID, Brand_Name = STUFF
(
(
SELECT DISTINCT ','+ Brand_Name
FROM #BrandsAndCustomers t2
WHERE t2.Cust_ID = t1.Cust_ID
FOR XML PATH('')
),1,1,''
)
FROM #BrandsAndCustomers T1
GROUP BY T1.Cust_ID
)
SELECT c.Cust_Name, CTE.Brand_Name
FROM CTE
JOIN #Customers c ON c.ID = CTE.Cust_ID
קאוד: וועל אויס אלע
SELECT Cust_Name, ( select GROUP_CONCAT(Brand_Name) FROM Brands WHERE FIND_IN_SET(Car_ID, MODELS)) AS brands FROM Car_Models M
INNER JOIN Customers C ON C.ID = M.Cust_ID;
קאוד: וועל אויס אלע
CREATE TABLE Car_Models
(
Cust_ID int,
Models VARCHAR(50)
);
INSERT INTO Car_Models (Cust_ID,Models) VALUES( 1,'115,116,127,118,145');
INSERT INTO Car_Models (Cust_ID,Models) VALUES( 2,'224,118,154');
INSERT INTO Car_Models (Cust_ID,Models) VALUES( 3,'22,184,164');
INSERT INTO Car_Models (Cust_ID,Models) VALUES( 4,'455,1223,89');
CREATE TABLE Customers
(
ID int,
Cust_Name VARCHAR(50)
);
INSERT INTO Customers (ID, Cust_Name) VALUES (1,'Moshe');
INSERT INTO Customers (ID, Cust_Name) VALUES (2,'Zurech');
INSERT INTO Customers (ID, Cust_Name) VALUES (3,'Yukel');
INSERT INTO Customers (ID, Cust_Name) VALUES (3,'Yisroel');
CREATE TABLE Brands
(
Car_ID int,
Brand_Name VARCHAR(50)
);
INSERT INTO Brands (Car_ID,Brand_Name) VALUES (115,'GM');
INSERT INTO Brands (Car_ID,Brand_Name) VALUES (116,'Ford');
INSERT INTO Brands (Car_ID,Brand_Name) VALUES (127,'Chrysler');
INSERT INTO Brands (Car_ID,Brand_Name) VALUES (118,'GMC');
INSERT INTO Brands (Car_ID,Brand_Name) VALUES (145,'Toyota');
INSERT INTO Brands (Car_ID,Brand_Name) VALUES (224,'Honda');
INSERT INTO Brands (Car_ID,Brand_Name) VALUES (154,'Kia');
INSERT INTO Brands (Car_ID,Brand_Name) VALUES (22,'BMW');
INSERT INTO Brands (Car_ID,Brand_Name) VALUES (184,'Cheverloet');
INSERT INTO Brands (Car_ID,Brand_Name) VALUES (164,'Jeep');
INSERT INTO Brands (Car_ID,Brand_Name) VALUES (455,'Land Rover');
INSERT INTO Brands (Car_ID,Brand_Name) VALUES (1223,'Mercedes');
INSERT INTO Brands (Car_ID,Brand_Name) VALUES (89,'Audi');
INSERT INTO Brands (Car_ID,Brand_Name) VALUES (75,'Folksvagon');
INSERT INTO Brands (Car_ID,Brand_Name) VALUES (192,'Lexus');
אלטער האט געשריבן: איך האב עס געמאכט אין sql server, אבער די איידיע קענסטו לכאורה אויך נעמען פאר MySQL
אלץ אן עצה טובה, סעוו עס קיינמאל נישט אין איין row...
מארס האט געשריבן: in mysql:
קאוד: וועל אויס אלע
SELECT Cust_Name, ( select GROUP_CONCAT(Brand_Name) FROM Brands WHERE FIND_IN_SET(Car_ID, MODELS)) AS brands FROM Car_Models M
INNER JOIN Customers C ON C.ID = M.Cust_ID;
tables:
קאוד: וועל אויס אלע
CREATE TABLE Car_Models
(
Cust_ID int,
Models VARCHAR(50)
);
INSERT INTO Car_Models (Cust_ID,Models) VALUES( 1,'115,116,127,118,145');
INSERT INTO Car_Models (Cust_ID,Models) VALUES( 2,'224,118,154');
INSERT INTO Car_Models (Cust_ID,Models) VALUES( 3,'22,184,164');
INSERT INTO Car_Models (Cust_ID,Models) VALUES( 4,'455,1223,89');
CREATE TABLE Customers
(
ID int,
Cust_Name VARCHAR(50)
);
INSERT INTO Customers (ID, Cust_Name) VALUES (1,'Moshe');
INSERT INTO Customers (ID, Cust_Name) VALUES (2,'Zurech');
INSERT INTO Customers (ID, Cust_Name) VALUES (3,'Yukel');
INSERT INTO Customers (ID, Cust_Name) VALUES (3,'Yisroel');
CREATE TABLE Brands
(
Car_ID int,
Brand_Name VARCHAR(50)
);
INSERT INTO Brands (Car_ID,Brand_Name) VALUES (115,'GM');
INSERT INTO Brands (Car_ID,Brand_Name) VALUES (116,'Ford');
INSERT INTO Brands (Car_ID,Brand_Name) VALUES (127,'Chrysler');
INSERT INTO Brands (Car_ID,Brand_Name) VALUES (118,'GMC');
INSERT INTO Brands (Car_ID,Brand_Name) VALUES (145,'Toyota');
INSERT INTO Brands (Car_ID,Brand_Name) VALUES (224,'Honda');
INSERT INTO Brands (Car_ID,Brand_Name) VALUES (154,'Kia');
INSERT INTO Brands (Car_ID,Brand_Name) VALUES (22,'BMW');
INSERT INTO Brands (Car_ID,Brand_Name) VALUES (184,'Cheverloet');
INSERT INTO Brands (Car_ID,Brand_Name) VALUES (164,'Jeep');
INSERT INTO Brands (Car_ID,Brand_Name) VALUES (455,'Land Rover');
INSERT INTO Brands (Car_ID,Brand_Name) VALUES (1223,'Mercedes');
INSERT INTO Brands (Car_ID,Brand_Name) VALUES (89,'Audi');
INSERT INTO Brands (Car_ID,Brand_Name) VALUES (75,'Folksvagon');
INSERT INTO Brands (Car_ID,Brand_Name) VALUES (192,'Lexus');
אלטער האט געשריבן: קענסט ריפלעסן אלע ספעיסעס מיט די ריפלעס פאנקשאן
קנאפער ידען האט געשריבן:אלטער האט געשריבן: קענסט ריפלעסן אלע ספעיסעס מיט די ריפלעס פאנקשאן
אינעם טעיבל (קענעך נישט אבוויעסלי) אדער אין מיין סעלעקט? וואו לייג איך דער ריפלעיס?
אלטער האט געשריבן:קנאפער ידען האט געשריבן:אלטער האט געשריבן: קענסט ריפלעסן אלע ספעיסעס מיט די ריפלעס פאנקשאן
אינעם טעיבל (קענעך נישט אבוויעסלי) אדער אין מיין סעלעקט? וואו לייג איך דער ריפלעיס?
אין די סעלעקט
קאוד: וועל אויס אלע
FIND_IN_SET(Car_ID, REPLACE(MODELS," ",""))
קאוד: וועל אויס אלע
+--------+------------+
| car_id | brand |
+--------+------------+
| 115 | Acura |
| 145 | Bentley |
| 224 | Buick |
| 154 | Cadillac |
| 192 | Honda |
+--------+------------+
קאוד: וועל אויס אלע
+--------+------------+
| car_id | names |
+--------+------------+
| 116 | Alfa Romeo |
| 127 | Audi |
| 118 | BMW |
| 145 | Bentley |
| 224 | Buick |
| 154 | Cadillac |
| 22 | Chevrolet |
| 184 | Chrysler |
| 164 | Dodge |
| 455 | Fiat |
| 1223 | Ford |
| 192 | Honda |
+--------+------------+
קאוד: וועל אויס אלע
+---------+
| Missing |
+---------+
| Acura |
+---------+
קנאפער ידען האט געשריבן: וואס איז א סטעיטמענט וואס ווען מיר קאמפערן איין קאלום אין א טעיבל צו א קאלום אין א צווייטע טעיבל און מיר צוריקגעבן אלע רעזולטאטן פון קאלום-טעיבל 1 וואס איז נישט דא אין קאלום-טעיבל 2?
קאוד: וועל אויס אלע
select t1.brand from table1 t1 where t1.car_id not in (select car_id from table2)
קנאפער ידען האט געשריבן: כ'מיין אז עס איז א שנעלער שאלה...
וואס איז א סטעיטמענט וואס ווען מיר קאמפערן איין קאלום אין א טעיבל צו א קאלום אין א צווייטע טעיבל און מיר צוריקגעבן אלע רעזולטאטן פון קאלום-טעיבל 1 וואס איז נישט דא אין קאלום-טעיבל 2?
קאוד: וועל אויס אלע
SELECT brand FROM table1 WHERE brand NOT IN (SELECT names FROM table2);
קו הישר האט געשריבן: כמעט די זעלבע מיט טאטאל אנדערע רעזאלטאטן.
מיינס זיכט ביי די איידי און דיינסט זוכט ביי די נאמען.
קנאפער ידען האט געשריבן: וואס איז אויב איך וויל גיין ביי איידי טאקע אבער דער קאר איידי קאלום פון טעיבל צוויי האט א 000 פאר יעדע נומער?
קאוד: וועל אויס אלע
select t1.brand from table1 t1 where t1.car_id not in (select concat("000",car_id) from table2)
קו הישר האט געשריבן:קנאפער ידען האט געשריבן: וואס איז אויב איך וויל גיין ביי איידי טאקע אבער דער קאר איידי קאלום פון טעיבל צוויי האט א 000 פאר יעדע נומער?
לייג צו קאנקעט מיט די זעראוס.
קאוד: וועל אויס אלע
select t1.brand from table1 t1 where t1.car_id not in (select concat("000",car_id) from table2)
שוועמל האט געשריבן: אין מייסקל דעטעבעיס האב איך דאטומס אין די אריגינעלע פארמאט למשל דאס
קאוד: וועל אויס אלע
2016-04-13 23:58:54
יעצט ראן איך א סקל קווערי און די דעטע קומט אריין אין עקסעל. די דעיט ווערט קאנווערטעד אויפן וועג צו א מער פרענדלי וועג דהיינו 04/13/2016, דורך די פאנקשען:
קאוד: וועל אויס אלע
DATE_FORMAT(created_at,'%m/%d/%Y')
פראבלעם איז , עקסעל טריט אים נישט אלס א דעיט, ער מיינט סיז טעקסט.
ונפקא מינה לענין פיוואט טעיבעלס וכדומה.
איז דא א וועג אין א מייסקל קווערי צו קאנווערטן די דעיט אלס א ריכטיגע "דעיט"??
אגב, שוין אויך פרובירט די דאטום זאל אריינקומען אזוי 4/13/2016, אבער דערווייל פארשטייט עקסעל נאך אלס נישט ער איז א דעיט.
קאוד: וועל אויס אלע
DATE_FORMAT(created_at,'%c/%e/%Y')
קנאפער ידען האט געשריבן: כ'מיין אז עס איז א שנעלער שאלה...
וואס איז א סטעיטמענט וואס ווען מיר קאמפערן איין קאלום אין א טעיבל צו א קאלום אין א צווייטע טעיבל און מיר צוריקגעבן אלע רעזולטאטן פון קאלום-טעיבל 1 וואס איז נישט דא אין קאלום-טעיבל 2?
למשל פון די קאר עקזעמפעלס אויבן אויב איך האב טעיבלס table1:
קאוד: וועל אויס אלע
+--------+------------+
| car_id | brand |
+--------+------------+
| 115 | Acura |
| 145 | Bentley |
| 224 | Buick |
| 154 | Cadillac |
| 192 | Honda |
+--------+------------+
און table2:
קאוד: וועל אויס אלע
+--------+------------+
| car_id | names |
+--------+------------+
| 116 | Alfa Romeo |
| 127 | Audi |
| 118 | BMW |
| 145 | Bentley |
| 224 | Buick |
| 154 | Cadillac |
| 22 | Chevrolet |
| 184 | Chrysler |
| 164 | Dodge |
| 455 | Fiat |
| 1223 | Ford |
| 192 | Honda |
+--------+------------+
און איך וויל צוריקבאקומען:
קאוד: וועל אויס אלע
+---------+
| Missing |
+---------+
| Acura |
+---------+
Unidentified האט געשריבן:קנאפער ידען האט געשריבן: כ'מיין אז עס איז א שנעלער שאלה...
וואס איז א סטעיטמענט וואס ווען מיר קאמפערן איין קאלום אין א טעיבל צו א קאלום אין א צווייטע טעיבל און מיר צוריקגעבן אלע רעזולטאטן פון קאלום-טעיבל 1 וואס איז נישט דא אין קאלום-טעיבל 2?
למשל פון די קאר עקזעמפעלס אויבן אויב איך האב טעיבלס table1:
קאוד: וועל אויס אלע
+--------+------------+
| car_id | brand |
+--------+------------+
| 115 | Acura |
| 145 | Bentley |
| 224 | Buick |
| 154 | Cadillac |
| 192 | Honda |
+--------+------------+
און table2:
קאוד: וועל אויס אלע
+--------+------------+
| car_id | names |
+--------+------------+
| 116 | Alfa Romeo |
| 127 | Audi |
| 118 | BMW |
| 145 | Bentley |
| 224 | Buick |
| 154 | Cadillac |
| 22 | Chevrolet |
| 184 | Chrysler |
| 164 | Dodge |
| 455 | Fiat |
| 1223 | Ford |
| 192 | Honda |
+--------+------------+
און איך וויל צוריקבאקומען:
קאוד: וועל אויס אלע
+---------+
| Missing |
+---------+
| Acura |
+---------+
You can also bring in to php and in the while loop call a function what select the second table if less then 1 it's missing
Unidentified האט געשריבן: Post here your code
If I have time I write here a sample for yo
קו הישר האט געשריבן:Unidentified האט געשריבן: Post here your code
If I have time I write here a sample for yo
צדיק, נאר געווען א ווערטל.
זיין שאלה איז געווען דירעקט אין סיקיועל, נישט פאר פהפ.
בכל אופן, ברוכים הבאים. האפן מיר אז מען וועט פיל נהנה זיין פון אייך דא אויפן וועלטל.