Mysql 按键联接两个表

标签 mysql

我正在尝试连接两个表,但似乎遇到问题,我正在寻找的输出是有主题的行数。

SELECT *
FROM education AS a
JOIN keys2 AS b USING(`List Idsubjek`)
WHERE `List Idsubjek` IN (52, 54, 55, 67)
AND `studentid` = '$id'

keys2 表如下所示:

id List Idsubjek  Subject
1  52             Maths
2  53             Geography

教育表如下所示:

id List Idsubjek       studentid school
1  52,53,54,74,0,0,0   15        school name

我目前只生成一行,并带有一个额外的“主题”列,但它只生成第一行。数学。

如有任何帮助,我们将不胜感激。

最佳答案

首先,您应该标准化您的数据结构,并在keys2和education表之间建立一个连接表。

要使连接适用于当前数据结构,请使用 mysql 的 find_in_set()功能:

SELECT *
FROM education AS a
JOIN keys2 AS b on find_in_set(b.`List Idsubjek`,a.`List Idsubjek`)>0 
WHERE b.`List Idsubjek` IN (52, 54, 55, 67)
AND `studentid` = '$id'

关于Mysql 按键联接两个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33896680/

相关文章:

python - 拥有 django 项目的主数据库

mysql - 如何在 MySQL 中进行递归 SELECT 查询?

php - 公共(public) IP 地址作为我在 mysql_connect() 中的主机名

php - 编写准备好的语句以从表中检索数据( fatal error )

mysql - 如何获取每天的 count()

mysql - 如何修复 FOR EACH ROW 语句未移动到下一行的错误

php - mysql日期格式转换,存储过程还是php?

mysql - 在 Rails 中的参数化 SQL 查询中转义 ':' 和 '?'

mysql - sql 存储过程 "Default Parameter Values"

MySQL优化几何查询