2010-08-31 84 views
1

我已经完成了一些复杂的SQL查询,但从未通过多个值连接两个表,并且我不确定是否有可能。MySQL - 在查询中将用户用户名映射到用户ID

我有以下两个表:

 users 
     +-------+----------+ 
     | u_ID | username | 
     +-------+----------+ 
     | 1 | Pablo | 
     +-------+----------+ 
     | 2 | Mike | 
     +-------+----------+ 


     Messages 
     +-------+----------+---------+ 
     | m_ID | auhor_id | message | 
     +-------+----------+---------+ 
     | 1 |  2 | Heelo5 | 
     +-------+----------+---------+ 
     | 2 |  1 | he4532 | 
     +-------+----------+---------+ 
     | 3 |  2 | he4111 | 
     +-------+----------+---------+ 
     | 4 |  1 | he4538 | 
     +-------+----------+---------+ 

将我需要什么SQL查询来获取这个表?

+-------+----------+---------+ 
    | m_ID | username | message | 
    +-------+----------+---------+ 
    | 1 | Mike | Heelo5 | 
    +-------+----------+---------+ 
    | 2 | Pablo | he4532 | 
    +-------+----------+---------+ 
    | 3 | Mike | he4111 | 
    +-------+----------+---------+ 
    | 4 | Pablo | he4538 | 
    +-------+----------+---------+ 

回答

3
select m.m_ID, u.username, m.message 
from Messages m, users u 
where m. auhor_id = u.m_ID; 

大概要在WHERE子句指定消息记录附加条件。正如我写的那样,所有消息记录都显示出来。

+0

谢谢,这是我需要什么,开始我处理的其他条件,我只是想做出尽可能简单的例子。 – Pablo 2010-08-31 00:34:31

0
select m.m_ID, u.username, m.message 
from messages m inner join users u on u.u_ID = m.auhor_id 
1
select 
m.m_ID, 
u.username, 
m.message 
from 
users u 
inner join messages m on u.u_ID = m.author_id 
order by 
m.m_ID;