SQL内连接不会返回正确的答案

时间:2014-10-29 13:36:12

标签: mysql sql drupal phpmyadmin

您好我正在制作一个外部应用程序,需要访问并从运行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 谁能告诉我我做错了什么?

1 个答案:

答案 0 :(得分:4)

我认为你的连接声明错了。您需要在表格中加入uid列,如下所示

  SELECT pid FROM profile 
  INNER JOIN users_roles on profile.uid = users_roles.uid WHERE users_roles.rid = 10