【发布时间】:2015-07-20 18:35:35
【问题描述】:
我整个上午都在运行 SQL 调用,但没有获得想要返回的正确类型的数据。我做了一些搜索,发现了一些关于加入 2 个表的信息,但没有从表中提取的信息,也没有从表中提取的信息。措辞可能会让人感到困惑,所以我制作了一张我想要获得的信息的图表。
我尝试过类似的东西,
select * from Users
left join UserLibs on UserLibs.userId = Users.UserId
WHERE Users.username='testname'
然而,这并没有给我图书馆的名字。
然后我厌倦了将列与另一个表和列连接起来。
select * from users
left join UserLibs on userLibs.userId = Users.UserId AND left join Libraries on UserLibs.libraryId = Libraries.libraryName
where Users.username='test';
这也没有产生结果,只是错误。对此的任何帮助都会很棒。
更新
我只是想添加适合我情况的最终解决方案。
SELECT Users.userId, Users.username, Users.editLibraries, Users.editAnnouncements, Users.editServices,
Users.editNormalHours, Users.editSpecialHours, Users.editUsers, Users.editSemesters,
Libraries.libraryName, LibraryDepartment.departmentName
FROM Users
LEFT JOIN UserLibs on Users.userId = UserLibs.userId
LEFT JOIN Libraries on UserLibs.libraryId = Libraries.id
LEFT JOIN UserDepts on Users.userId = UserDepts.userId
LEFT JOIN LibraryDepartment on UserDepts.departmentId = LibraryDepartment.ldId
WHERE Users.username='testname';
【问题讨论】:
-
and left join完全是非法的。但这就是你必须做的,就像它在你的图表中一样。`从users中选择,加入 -> 用户库,加入 -> 库
标签: php mysql sql database mysql-error-1064