-1

I have the following table daysTurns:

Table

How can I get a result like this?

date        turn      mail
2017-04-03  turn11    luis@geen.com
2017-04-03  turn12    luis@geen.com
2017-04-03  turn13    luis@geen.com
2017-04-03  turn21    luis@geen.com
2017-04-03  turn21    luis@geen.com
2017-04-03  turn21    luis@geen.com
2017-04-04  turn11    luis@geen.com
2017-04-04  turn12    luis@geen.com
2017-04-04  turn13    luis@geen.com
2017-04-04  turn21    luis@geen.com
2017-04-04  turn22    luis@geen.com
2017-04-04  turn23    luis@geen.com

I assume I would need a query like SELECT * FROM daysTurns.

And this is the expected OUTPUT:

halfer
  • 19,824
  • 17
  • 99
  • 186
luispa
  • 133
  • 3
  • 7

2 Answers2

1

IF you have only 6 columns which look like a 'turn__', then Try to do this:

SELECT date, 'turn11' as turn, mail FROM daysTurns
WHERE turn11 is not null and turn11 <> ''
UNION ALL
SELECT date, 'turn12' as turn, mail FROM daysTurns
WHERE turn12 is not null and turn12 <> ''
UNION ALL
SELECT date, 'turn13' as turn, mail FROM daysTurns
WHERE turn13 is not null and turn13 <> ''
UNION ALL
SELECT date, 'turn21' as turn, mail FROM daysTurns
WHERE turn21 is not null and turn21 <> ''
UNION ALL
SELECT date, 'turn22' as turn, mail FROM daysTurns
WHERE turn22 is not null and turn22 <> ''
UNION ALL
SELECT date, 'turn23' as turn, mail FROM daysTurns
WHERE turn23 is not null and turn23 <> ''
Evgeny
  • 597
  • 2
  • 7
  • 16
0

(Posted on behalf of the OP).

The solution query:

SET @mail = 'the_mail_that_i_need';

SELECT date, 'turn11' as turn, turn11 as mail FROM daysTurns
WHERE turn11 = @mail 
UNION ALL
SELECT date, 'turn12' as turn, turn12 as mail FROM daysTurns
WHERE turn12 = @mail
UNION ALL
SELECT date, 'turn13' as turn, turn13 as mail FROM daysTurns
WHERE turn13 = @mail
UNION ALL
SELECT date, 'turn21' as turn, turn21 as mail FROM daysTurns
WHERE turn21 = @mail
UNION ALL
SELECT date, 'turn22' as turn, turn22 as mail FROM daysTurns
WHERE turn22 = @mail
UNION ALL
SELECT date, 'turn23' as turn, turn23 as mail FROM daysTurns
WHERE turn23 = @mail
ORDER BY date ASC
halfer
  • 19,824
  • 17
  • 99
  • 186