sql >> Databasteknik >  >> RDS >> Mysql

slå samman tabeller och transponera kolumner och rader

Kan du ändra tabellschemat? För att den första tabellen, survey_1, är bättre skriven med en rad per svar och med hela den andra tabellens nyckel per rad. Så här (lägg till dina egna index)

create table survey_1 (
  id int,
  token int,
  sid int,
  gid int,
  qid int,
  answer varchar(255)
)

Då skulle uppgifterna vara

------------------------------------------
| 1 | 1 | 1 | 2 | 1 | "YES"              |
| 1 | 1 | 1 | 2 | 2 | "Justin Beiber"    |
| 2 | 1 | 1 | 2 | 1 | "YES"              |
| 2 | 1 | 1 | 2 | 2 | "Britney Spears"   |
------------------------------------------

Det kommer att bli mycket lättare att arbeta med och generellt sett en bättre design.

Så här skulle det se ut http://sqlfiddle.com/#!2/4f1ca/2



  1. Sätt tomma strängar ('') till NULL i hela databasen

  2. FORALL-uttalande med VALUES-OF Bound-klausul i Oracle Database

  3. Grupperad sammankoppling i SQL Server

  4. Det går inte att casta objekt av typen 'System.DBNull' till typen 'System.Byte[]'.