您好我正在制作一个外部应用程序,需要访问并从运行drupal网站的网络服务器读取数据。
我希望连接两个表并从第一个表中读取1列,而其他表中的某些内容为真。
这些表是" profile"和" user_roles"
http://i.stack.imgur.com/jRhFG.png
正如您所看到的,当我运行"SELECT * FROM users_roles WHERE rid = 10"
时,它会返回结果
http://i.stack.imgur.com/jU5GL.png
当我"SELECT * FROM profile where uid = 220"
它也返回一个结果时,这些表中有很多用户我只是包含一小部分来证明这一点。
但是当我运行"SELECT pid FROM profile INNER JOIN users_roles on profile.pid = users_roles.uid WHERE users_roles.rid = 10"
它不返回任何内容,如果我将相同的语句更改为users_roles.rid = 5,则会正确返回它们。 但是10并没有。
我需要获取角色ID为给定数字的所有pid 谁能告诉我我做错了什么?
答案 0 :(得分:4)
我认为你的连接声明错了。您需要在表格中加入uid列,如下所示
SELECT pid FROM profile
INNER JOIN users_roles on profile.uid = users_roles.uid WHERE users_roles.rid = 10