这让我发疯,我已经花了好几个小时,我只是不知道该怎么做:
我有3张桌子:
在用户中我有coduser和用户名 在公司codcompany和company_name 在company_permissions中我有idcompany_permissions,codcompany,coduser
我想要做的基本上是,通过一个查询,获取给定用户名有权访问的公司的名称。
我有这个问题:
select users.coduser, users.username, companies.company_name
from users
inner join company_permissions on users.coduser = company_permissions.coduser
inner join companies on companies.codcompany = company_permissions.codcompany
where users.username = 'test'
但它并没有返回任何东西:C(它曾经在某一点上做过,但现在却没有做到)
答案 0 :(得分:1)
您的查询没有错误
检查数据库是否存在用户'test'
如果因为你使用内连接而存在它必须是所有三个表中的记录
再次检查
答案 1 :(得分:0)
我认为对于这种情况,你应该使用LEFT JOIN而不是INNER JOIN。 无论如何,WHERE users.user =' test',我的访客该字段必须是用户名。
答案 2 :(得分:0)
逐步测试您的陈述
1)
select users.* from users
--inner join company_permissions on users.coduser = company_permissions.coduser
--inner join companies on companies.codcompany = company_permissions.codcompany
where users.username = 'test'
是否有结果......用户数据存在
2)。
select users.*
from users
inner join company_permissions on users.coduser = company_permissions.coduser
--inner join companies on companies.codcompany = company_permissions.codcompany
where users.username = 'test'
是否有结果...... company_permissions和users之间的连接正常(数据存在)
3。)
select users.*
from users
--inner join company_permissions on users.coduser = company_permissions.coduser
inner join companies on companies.codcompany = company_permissions.codcompany
where users.username = 'test'
是否有公司和company_permissions之间的连接正常..