Y todo se puede hacer, pero siempre depende de lo que quiere hacer. A continuación, le mostraré un ejemplo de trabajo justo después de tener que tomar los datos como una matriz y hacer lo que quiera.
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;
impresión:
column_1
1 10-20
2 13-23
3 NULL
4 11-21
5 NULL
Solución en acción a través de este enlace: http://rextester.com/LHPI38373
Usted podría; pero no lo recomiendo; concatenar las columnas múltiples juntas y analizarlas más adelante'THEN books.id1 | ',' | books.id2 ... 'solo depende de lo que estás tratando de hacer. Esto eliminaría los problemas de valores múltiples devueltos y alias como uno. como sería devolver 1 valor. – xQbert
gracias por su tiempo. ¿podrías explicarme cómo hacer eso? –
CONCAT (books.ID1, ',', books.id2, ',' bookxId ...) devolverá 1, 2, 3 si booksid1 ... es 1,2,3 respectivamente. – xQbert