mysql - "merging"两个SQL数据库的两列变成第三个(有一个catch)

标签 mysql database

关于另一个更复杂的问题,我正在做一些 SQL 数据库原型(prototype)设计。我想执行以下操作:

  1. 使用一个现有的 SQL 数据库,其中包含一个名为“studentNames”的列
  2. 使用另一个现有的 SQL 数据库,该数据库有一个名为“ACTvocabularyWords”的列
  3. 在新数据库中将它们“合并”在一起,这样我就可以跟上哪些学生掌握和未掌握哪些 ACT 词汇。

为了清楚起见,这里是两个原始数据库的示例(大致):

studentNames:
-------------
adam applewhite
betty boop
carl creepy . . .

这是包含词汇的数据库:

actVocabWords:
--------------------
androgynous 
ctenoid 
stygian . . .

合并后的表(如果你愿意的话)应该是这样的:

studentName:          actVocabWord:           mastered:
----------------------------------------------------------------
adam applewhite       androgynous             T 
adam applewhite       ctenoid                 T 
adam applewhite       stygian                 F 
betty boop            androgynous             T 
betty boop            ctenoid                 F 
betty boop            stygian                 F 
carl creepy           androgynous             T 
carl creepy           ctenoid                 T 
carl creepy           stygian                 T 

(我很抱歉在这个网站上创建表格很糟糕)

我确信有一种相当简单的方法可以进行这种合并/连接,但我不知道如何调用它(以便我可以搜索文档)。

据我所知,UNION、UNION ALL、OUTER JOIN、INNER JOIN、BATCH INSERT 等从来没有真正打算做这种事情。有人还建议我不要尝试从 vocab 数据库中提取数据,将其加载到列表或数组(例如,Java),手动处理合并,然后创建一个新数据库。

有谁知道我应该将这种奇怪类型的“合并”称为什么,以便我可以阅读 SQL 文档?

谢谢!

最佳答案

你没有解释如何得到最后一列,mastered

您得到带有交叉连接的行:

select studentName, actVocabWord
from StudentNames sn cross join actVocabWords vw;

这通常会与另一个表结合使用,比如 mastered 来获取标志:

select sn.studentName, vw.actVocabWord,
       (m.studentName is null) as mastered
from StudentNames sn cross join
     actVocabWords vw left join
     mastered m
     on m.studentName = sn.studentName and m.actVocabWord = vw.actVocabWord

关于mysql - "merging"两个SQL数据库的两列变成第三个(有一个catch),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37824768/

相关文章:

php 包含数组 vs mysql 查询 : good idea?

php - 简单的PHP数据库连接

php - mongodb remove 不返回 bool 值

仅当查询包装为子查询时,MySQL重复列错误

php - 如何记录商店的折扣信息?

mysql - 根据给定的词群,根据 OCR 错误自动构建可能词的输出列表

java - 在java中单个语句中执行多个查询

php - 只返回一条记录

php - 远程和本地之间的数据同步各有写入

ruby-on-rails - 如何在 Rails 站点上以惯用的方式创建数据库浏览器?