Mysql SQL左/右连接问题

Mysql SQL左/右连接问题,mysql,sql,Mysql,Sql,我试图运行下面的脚本,但总是得到名称字段的空值 SELECT u.name AS _user_name, s.name AS _school_name FROM fwg_files AS f LEFT JOIN users AS u ON u.id = f.user_id LEFT JOIN user_profiles AS up ON up.user_id = u.id LEFT JOIN school AS s ON s.id = up.profile_value 在学校表上的JOIN中,

我试图运行下面的脚本,但总是得到名称字段的空值

SELECT u.name AS _user_name, s.name AS _school_name
FROM fwg_files AS f
LEFT JOIN users AS u ON u.id = f.user_id
LEFT JOIN user_profiles AS up ON up.user_id = u.id
LEFT JOIN school AS s ON s.id = up.profile_value
在学校表上的JOIN中,我似乎遇到了问题,我试图选择s.id,但它也返回空值。当我将最后一行更改为右连接时,它开始工作,但我只能看到s.name值,其他值为NULL

表fwg_文件

id  | user_id
240 | 414
241 | 436
表用户

id  | name
414 | Name 1
436 | Name 2
表用户配置文件

user_id | profile_value
414     | "6"
436     | "14"
桌上学校

id | name

 6 | School 1
14 | School 2

谢谢

如果必须使用
profile\u value
列上的引号,则需要混合使用
CONVERT
SUBSTRING\u INDEX
来删除引号,以便能够执行该操作

检查以下代码:

SELECT users.name as User, s.name as School
  FROM fwg_files AS ff
  LEFT JOIN users ON users.id = ff.user_id
  LEFT JOIN user_profiles AS up ON up.user_id = users.id
  LEFT JOIN school AS s ON s.id = CONVERT(SUBSTRING_INDEX(up.profile_value,'"',-2),UNSIGNED INTEGER);

这里是引文。

Sac:不,我没有,你有什么建议吗?你的配置文件值应该是一个整数类型的外键,而不是varcharI试图修改最后一行,以s ON s.id=CAST(up.profile_值为UNSIGNED)左加入fad9u学校,但是仍然有和INTSac相同的结果来转换配置文件值:我修改了精确的值-问题是在值中引用-看看你的SqlFiddle非常感谢!!!它工作得很好:-)