Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom dia, pessoal.
Eu estou com um problema que a início achei que seria simples de se resolver, mas não estou conseguindo.
Tenho as seguintes tabelas:
users table
id INT
name VARCHAR
admins table
id
name VARCHAR
Eu preciso fazer um select nas duas tabelas e ordenar os resultados intercaladamente. Ou seja, eu preciso que para cada 10 registros da tabela users, apareça 1 registro da tabela admins. O Resultado do select ficando algo como:
----------------------------------
id, name, type
----------------------------------
1, Fulano, user
2, Fulano, user
3, Fulano, user
4, Fulano, user
5, Fulano, user
6, Fulano, user
7, Fulano, user
8, Fulano, user
9, Fulano, user
10, Fulano, user
1, Sicrano, admin
11, Fulano, user
12, Fulano, user
.....
O que eu já tentei:
SET @number := 0;
SELECT
@number := IF(@number = 10, 10, @number+1) AS number,
id,
name,
'user' AS type
FROM users
UNION
SELECT
@number := 0 AS number,
id,
name,
'admin' AS type
FROM admins
ORDER BY IF(number = 10, type = 'admin', type = 'user') DESC;
Eu sei que a lógica está errada e algo faltando, mas não consigo descobrir a solução.
Alguém tem alguma luz?
Carregando comentários...