你好,我正在制作一个外部应用程序,它需要从运行 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 谁能告诉我我做错了什么?
最佳答案
我认为您的连接语句有误。您需要在 uid 列上加入如下表
SELECT pid FROM profile
INNER JOIN users_roles on profile.uid = users_roles.uid WHERE users_roles.rid = 10
关于mysql - SQL 内连接不返回正确的答案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26631807/