我有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";
如果可能,我想从两个表中选择所有
答案 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,你就可以自己做基本的东西了。