当前位置: 首页 > 面试题库 >

MySQL Select查询以基于列表值获取记录

阎成天
2023-03-14
问题内容

我正在使用MySQL。我有3表,如下所示。

表:subject_Master

--------------------------
subjectId   | subjectShortName
----------------------------------
1           |   English
2           |   French
3           |   German
4           |   Latin
----------------------------------

表格:class_Master

-----------------------------------
classId     | className
----------------------------------
1           |   Rose
2           |   Dasy
3           |   Lily

表:subjectAllocation

------------------------------------------
allocationId    |   classId |   subjectId
-------------------------------------------
1               |   1       |   1,2
2               |   2       |   2,3,4
3               |   3       |   1,2,3,4

我如何获得如下的SQL结果,想获取subjectAllocation行中每个subjectId的SubjectName

ClassName   |   SubjectName
-------------------------------------------
Rose        |   English,French
Dasy        |   French,German,Latin
Lily        |   English,French,German,Latin

问题答案:

使用 FIND_IN_SET() 函数:

试试这个:

SELECT A.allocationId, 
       B.className, 
       GROUP_CONCAT(C.subjectShortName) AS subjectName
FROM subjectAllocation A
INNER JOIN class_Master B ON A.classId = B.classId 
INNER JOIN subject_Master C ON FIND_IN_SET(C.subjectId, A.subjectId) 
GROUP BY A.allocationId;


 类似资料:
  • 我想为某个度量的特定标记获取唯一值。例如,如果我有度量“metric\u name”有标记“tag\u name1”和“tag\u name2”: 我想获得“tag_name1”标记的唯一值:a、c、e 有点像:

  • 问题内容: 请考虑下表: 在这里,我要找回它们是具有独特组合的记录,和。如果存在两个或多个这些字段的唯一组合,我想选择其中的第一个。 作为上表数据的示例,我需要的输出是 (由于记录3和4具有相同的组合,我想只记录3,因为它是第一次出现) 我可以使用一条SQL语句执行此操作吗? 问题答案:

  • 问题内容: 好的,这是我的查询: 当它提取数据时,我得到了video_id的正确行,但它为其他每个类别都提取了第一行。因此,当我得到类别1的video_id的最大结果时,我得到了最大ID,但表的第一行是url,日期,标题和说明。 如何获取与最大ID结果相对应的其他列? 编辑:固定。 问题答案: 我会尝试这样的事情: 这比您自己的解决方案要快得多

  • 我有一个像这样的mysql表: 我需要一个查询来提取具有类别“a”和“F”的文档。 示例: 请帮帮我!谢谢

  • 我想要获取与列名相关的列值,如在policy no string中获取TXT_Policy_no等,因为excel工作表的值可以满足要求,所以我想要读取基于列名的值,以更加安全。 我的java代码:

  • 我在代码中使用条件查询。它总是激发 相反,我想忽略查询中的一列(字段),因为该字段以字节形式存储了大量数据。导致性能问题。 有谁能给出一个主意吗? 一些更新 我在查询中添加了一个投影,它创建了一个类似... 现在问题就像..中的未知列“y4_”以及y8_和y5_的相同错误意味着关闭它给出错误的所有内容。 我把它修改成像... 而且奏效了。但是不知道在HQL里面怎么修改?