关于MySQL JOIN的建议

时间:2012-08-23 13:10:24

标签: php mysql sql join

我很难让我了解MySQL Join功能。

这是我有两张桌子:

用户表:

admin_id     username
  *1          peter93
   2       stackoverflowrocks
   3          user3*

管理员详情表:

   admin_username     description        image
       pedro93          [text]        [image_url]
 stackoverflowrocks     [text]        [image_url]
        user3           [text]        [image_url]

我知道通常将两个数据库链接在一起你会使用ID号,但在这种情况下我想加入两个表,其中admin_username = username。

有人能帮帮我吗?如果有帮助的话,它适用于PHP脚本。

提前致谢! 彼得

3 个答案:

答案 0 :(得分:7)

所以没关系。你可以加入你喜欢的任何东西。

select * 
from user
    inner join admin
    on user.username=admin.admin_username

答案 1 :(得分:1)

通过字符串列连接与通过Id

连接相同
select * from admin_table
inner join admin_details on admin_table.username = admin_details.admin_username

但请确保您拥有和索引用户名列,否则当您有大量记录时,您的查询会变慢

答案 2 :(得分:1)

您可以加入几乎所有字段,但您可能希望记住数据类型不匹配,索引等

所有用户

SELECT u.*, a.*
FROM users AS u
LEFT JOIN admin AS a 
       ON u.username = a.username

所有管理员用户

SELECT u.*, a.*
FROM users AS u
INNER JOIN admin AS a 
       ON u.username = a.username

所有管理员

SELECT u.*, a.*
FROM users AS u
RIGHT JOIN admin AS a 
       ON u.username = a.username