我有两个表,我正在努力加入信息,我认为我忽略了一些东西。
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";
如果可能的话,我想从两个表中选择所有
还有撇号"
和点.
。以下是好的语法
$sql = "SELECT users.uid, mil_rank.rank_title
FROM users, mil_rank
WHERE users.rank_id = users.rank_title";
您需要使用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
列,因此您可能也不希望只选择*
。
试试这个例子
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
如果您希望使用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
也许如果你通读了一本SQL基础教程,你就可以自己做一些基本的事情了。