Numbering of MYSQL lines showing wrong sequence [duplicate]

0
I have two tables, perguntas and respostas , for each pergunta 4 or more respostas , it happens that I am not getting numerar as linhas correctly when grouping by queries

  

My result:

| linha |          pergunta | resposta |
|-------|-------------------|----------|
|     1 |  Qual o seu nome? |     gino |
|     5 | Qual a sua idade? |       20 |
  

Intended:

| linha |          pergunta | resposta |
|-------|-------------------|----------|
|     1 |  Qual o seu nome? |     gino |
|     2 | Qual a sua idade? |       20 |
  

Schema:

CREATE TABLE 'perguntas' (
  'id' int(10) UNSIGNED NOT NULL,
  'pergunta' varchar(50) COLLATE utf8_unicode_ci NOT NULL

);

INSERT INTO 'perguntas' ('id', 'pergunta') VALUES
(1,'Qual o seu nome?'),
(2,'Qual a sua idade?');

CREATE TABLE 'respostas' (
  'id' int(11) NOT NULL,
  'pergunta_id' int(11) NOT NULL,
  'resposta' varchar(50) COLLATE utf8_unicode_ci NOT NULL

);

INSERT INTO 'respostas' ('id','pergunta_id','resposta') VALUES
(1,1,'gino'),
(2,1,'lato'),
(2,1,'sapo'),
(2,1,'dode'),

(1,2,'20'),
(2,2,'30'),
(2,2,'40'),
(2,2,'50');
  

Inquiry:

Select    @contador := @contador + 1 AS linha,
pergunta, resposta from (SELECT @contador := 0) AS nada,
 perguntas p

inner join respostas r on r.pergunta_id=p.id

group by p.id
    
asked by anonymous 26.10.2018 / 15:36

1 answer

2

Try subquery :

SET @n = 0;

SELECT @n := @n+1 AS linha, tab.*
FROM (SELECT pergunta, resposta 
FROM perguntas p
INNER JOIN respostas r ON r.pergunta_id=p.id) as tab;

Running on DB Fiddle

    
26.10.2018 / 15:49