成员列表

时间:2016-01-10 17:40:55

标签: php sql join

我有2张桌子我正在努力加入信息我觉得我忽略了一些东西。

users
-----
uid    username   rank_id  reg_date     country

mil_rank
-----
rank_id    rank_title    


Desired output:
---------------

   Username      Rank Title    Reg Date    Country
     john           sgt        today        usa



$sql = "SELECT * users.uid, mil_rank.rank_title ".
    "FROM users, mil_rank ".
    "WHERE users.rank_id = users.rank_title";

如果可能,我想从两个表中选择所有

4 个答案:

答案 0 :(得分:2)

还有撇号"和点.。这是好语法

  $sql = "SELECT users.uid, mil_rank.rank_title
        FROM users, mil_rank
        WHERE users.rank_id = users.rank_title";

答案 1 :(得分:1)

您需要使用rank_id键将两个表绑定在一起:

SELECT users.username, mil_rank.rank_title, users.reg_date, users.country
FROM users, mil_rank
WHERE users.rank_id = mil_rank.rank_id

由于两个表格中都存在rank_id列,并且您不希望在输出中显示该列或uid列,因此您可能也不想只选择{{ 1}}。

答案 2 :(得分:1)

试试这个例子

SELECT u.uid, u.username, u.rank_id, u.reg_date, u.country, m.rank_id, m.rank_title
FROM users u, mil_rank m
WHERE u.rank_id = m.rank_id

答案 3 :(得分:1)

如果您希望使用JOIN,那么这就是您编写该查询的方式

SELECT u.username, u.reg_date, u.country, m.rank_title
FROM users u
   JOIN mil_rank m ON m.rank_id = u.rank_id

如果你想要这个特定级别,那么

SELECT u.username, u.reg_date, u.country, m.rank_title
FROM users u
   JOIN mil_rank m ON m.rank_id = u.rank_id
WHERE m.rank_title = 'sgt'

在回答您的评论时,是

SELECT u.username, u.reg_date, u.country, m.rank_title
FROM users u
   JOIN mil_rank m ON m.rank_id = u.rank_id
WHERE u.status_id != 1

也许如果你读完Basic SQL Tutorial,你就可以自己做基本的东西了。