1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
| --------------
select table_schema,
@i:=if (@prev=table_name,@i+1,1) as num,
@prev:=table_name as table_name,
column_name
from columns,
(SELECT @i:=0) as x,
(SELECT @prev:='') as y
where table_schema like 'base'
--------------
+--------------+------+------------+-------------+
| table_schema | num | table_name | column_name |
+--------------+------+------------+-------------+
| base | 1 | classe | id |
| base | 2 | classe | lib |
| base | 3 | classe | chef |
| base | 1 | eleve | id |
| base | 2 | eleve | nom |
| base | 3 | eleve | prenom |
| base | 4 | eleve | classe |
+--------------+------+------------+-------------+
--------------
select t.table_schema,
t.table_name,
case num when 1 then column_name else '' end as col1,
case num when 2 then column_name else '' end as col2,
case num when 3 then column_name else '' end as col3,
case num when 4 then column_name else '' end as col4
from TABLES as t
inner join ( select table_schema,
@i:=if (@prev=table_name,@i+1,1) as num,
@prev:=table_name as table_name,
column_name
from columns,
(SELECT @i:=0) as x,
(SELECT @prev:='') as y
where table_schema like 'base'
) as c
on c.table_schema = t.table_schema
and c.table_name = t.table_name
where t.table_schema like 'base'
--------------
+--------------+------------+------+------+--------+--------+
| table_schema | table_name | col1 | col2 | col3 | col4 |
+--------------+------------+------+------+--------+--------+
| base | classe | | | chef | |
| base | classe | id | | | |
| base | classe | | lib | | |
| base | eleve | | | | classe |
| base | eleve | id | | | |
| base | eleve | | nom | | |
| base | eleve | | | prenom | |
+--------------+------------+------+------+--------+--------+
Appuyez sur une touche pour continuer... |
Partager