1

我正在努力让我了解 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 脚本。

提前致谢!彼得

4

3 回答 3

7

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

select * 
from user
    inner join admin
    on user.username=admin.admin_username
于 2012-08-23T13:12:57.440 回答
1

通过字符串列加入与通过 Id 加入相同

select * from admin_table
inner join admin_details on admin_table.username = admin_details.admin_username

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

于 2012-08-23T13:13:38.103 回答
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
于 2012-08-23T13:21:12.943 回答