将SQL结果相互链接

时间:2012-11-14 13:58:03

标签: java mysql sql jdbc phpmyadmin

用户

id, first, last
1   John   Johnsson
2   Mark   Jackson
3   Chris  Lager

标签

id, userID, tag,       pass,        active
1   2       42564eb6   <some hash>  1
2   1       524846b6   <some hash>  0

我想输出的是这种数据组合:

标签

ID(from user), First name, Last name, Tag number, Password hash, Active
1              John        Johnsson   524846b6    <hash>         0
2              Mark        Jackson    42564eb6    <hash>         1
3              Chris       Lager                                  

所以基本上,我想要一个包含用户ID的用户表,如果适用的话tag numberpassactive字段

我在外部服务器上使用基于Web的数据库和PHPMyAdmin,我通过JDBC在Java中查询它。

我的问题:我需要使用哪些查询?我不确定Group ByOrder By等命令会对我的数据执行什么操作,而这些数据在Java中以ResultSet对象的形式出现。

4 个答案:

答案 0 :(得分:1)

您需要使用join

SELECT u.*, t.tag, t.pass, t.active FROM users u INNER JOIN tags t ON u.id = t.userID ORDER BY u.id

答案 1 :(得分:1)

SELECT U.ID AS UserID, U.First AS FirstName, U.Last AS LastName, 
       T.Tag AS TagNumber, T.Password AS PasswordHash, T.Active
FROM `Users` U
INNER JOIN `Tags` T ON T.UserID = U.ID
ORDER BY U.ID

答案 2 :(得分:1)

我认为这是LEFT JOIN,例如:

select
u.id,
u.first as [First Name],
u.Last as [Last name],
t.tag as [Tag Number],
t.pass as [Password],
t.Active
FROM [user] as u
LEFT JOIN [Tags] T ON U.id=T.UserId
ORDER BY u.[id] ASC

答案 3 :(得分:0)

您可以使用SQL Joins在表格上执行此操作。您的问题的代码是:

select
    users.id
    , users.first
    , users.last
    , tags.tag
    , tags.pass
    , tags.active
from
    users
    , tags
where
    users.id = tags.userID
order by
    users.id
/