Sql 如何以列形式从联接返回多个记录?

Sql 如何以列形式从联接返回多个记录?,sql,sqlite,join,Sql,Sqlite,Join,我有下面的SQL语句(SQLite 3.0),它连接了两个表,结果是我每天都有一条记录,其中包含当天的总数,但是将它连接到语言表,它每天给我五条记录,每种语言一条记录 SELECT re.day, re.flashcardsAdded, re.flashcardsTested, re.flashcardsLearned, re.totalPoints AS totalForDay, la.language, la.total AS totalForLanguage FROM dpod_sit

我有下面的SQL语句(SQLite 3.0),它连接了两个表,结果是我每天都有一条记录,其中包含当天的总数,但是将它连接到语言表,它每天给我五条记录,每种语言一条记录

SELECT 
re.day,
re.flashcardsAdded,
re.flashcardsTested,
re.flashcardsLearned,
re.totalPoints AS totalForDay,
la.language,
la.total AS totalForLanguage

FROM dpod_site_reportDays AS re
JOIN dpod_site_reportDayLanguageTotals AS la ON re.day=la.day
ORDER BY re.day DESC
但是,我每天只想要一条记录,而不是像“法语”这样的数据,我希望它是一个列名称,用该语言的总数作为该列的数据

如何更改SQL语句,以便在同一记录中获得具有适当字段名的语言总计?例如:

day | flashcardsAdded | flashcardsTested | flashcardsLearned | totalForDay | french | german | italian | russian | german

以下是表格:

CREATE TABLE dpod_site_reportDayLanguageTotals(
day VARCHAR(50), 
language VARCHAR(1024), 
total INT(12), 
extras VARCHAR(1024), 
idCode VARCHAR(1024), 
whenCreated VARCHAR(50), 
whenChanged VARCHAR(50), 
id INTEGER PRIMARY KEY  AUTOINCREMENT  NOT NULL  UNIQUE)

CREATE TABLE dpod_site_reportDays(
day VARCHAR(50), 
flashcardsAdded INT(12), 
flashcardsTested INT(12), 
flashcardsLearned INT(12), 
journalPoints INT(12), 
readingPoints INT(12), 
correctionPoints INT(12), 
extrasData TEXT, 
totalPoints INT(12), 
extras VARCHAR(1024), 
idCode VARCHAR(1024), 
whenCreated VARCHAR(50), 
whenChanged VARCHAR(50), 
id INTEGER PRIMARY KEY  AUTOINCREMENT  NOT NULL  UNIQUE)

我想您忘记了SQL语句;)@EdwardTanguay很遗憾您没有使用支持PIVOT的平台:)有趣的是,我不知道PIVOT在SQL Server中,但数据库作为文件也有其方便的优点。:-)
SELECT  
re.day, 
re.flashcardsAdded, 
re.flashcardsTested, 
re.flashcardsLearned, 
re.totalPoints AS totalForDay, 
Sum(CASE la.language WHEN 'french' THEN  la.total ELSE 0 END) AS french, 
Sum(CASE la.language WHEN 'german' THEN  la.total ELSE 0 END) AS german, 
Sum(CASE la.language WHEN 'italian' THEN  la.total ELSE 0 END) AS italian, 
Sum(CASE la.language WHEN 'russian' THEN  la.total ELSE 0 END) AS russian


FROM dpod_site_reportDays AS re 
JOIN dpod_site_reportDayLanguageTotals AS la ON re.day=la.day
GROUP BY re.day, 
re.flashcardsAdded, 
re.flashcardsTested, 
re.flashcardsLearned, 
re.totalPoints
ORDER BY re.day DESC