और सब कुछ किया जा सकता है, लेकिन यह हमेशा निर्भर करता है कि आप क्या करना चाहते हैं। डेटा को सरणी के रूप में ले जाने के बाद और आप जो चाहते हैं उसके बाद मैं आपको एक कामकाजी उदाहरण दिखाऊंगा।
CREATE TABLE wall (`ident` int,`type` varchar(2), `order` int);
INSERT INTO wall (`ident`, `type`, `order`) VALUES
(40,'bk', 1),
(41,'bk', 5),
(42,'rt', 2),
(43,'bk', 3),
(44,'rt', 1);
CREATE TABLE books (`ident` int,`id1` int, `time` varchar(8), `id2` int);
INSERT INTO books (`ident`, `id1`, `time`, `id2`) VALUES
(40, 10, '18:07:00', 20),
(43, 11, '05:00:00', 21),
(44, 12, '21:01:00', 22),
(41, 13, '10:00:00', 23),
(42, 14, '23:10:00', 24);
#--------------------------
SELECT
CASE
WHEN wall.type='bk'
THEN CONCAT(books.id1,'-',books.id2)
END AS column_1
FROM wall JOIN books ON books.ident = wall.ident GROUP BY wall.ident ORDER BY wall.ident ASC;
प्रिंट:
column_1
1 10-20
2 13-23
3 NULL
4 11-21
5 NULL
इस लिंक के माध्यम कार्रवाई में समाधान: http://rextester.com/LHPI38373
आप कर सकते थे; लेकिन मैं इसकी सिफारिश नहीं करता; कई स्तंभों को एकसाथ संयोजित करें और उन्हें बाद में'THEN books.id1 | ',' books.id2 ... 'पर पार्स करें, जो आप करने की कोशिश कर रहे हैं, उस पर निर्भर करता है। यह कई मूल्यों की समस्याओं को खत्म कर देगा और एक के रूप में उपनाम किया जाएगा। क्योंकि यह 1 मान वापस आ जाएगा। – xQbert
आपके समय के लिए धन्यवाद। क्या आप समझ सकते हैं कि यह कैसे करें? –
CONCAT (books.ID1, ',', books.id2, ',' bookxId ...) 1, 2, 3 लौटाएंगे यदि booksid1 ... क्रमशः 1,2,3 है। – xQbert