您好我有一个由2个表组成的数据库
userData表
userID | userPass | Firstname | Surname | Status | IPAddress
--------------------------------------------------------------
110110 | 123456 | James | Jackson | Online | 11.112.1
联系表
userID | contactID |
---------------------
110110 | 112114 |
112112 | 110110 |
110110 | 112444 |
第一个表是userdata表,我正在使用我的java应用程序进行登录。我还有另一个存储用户联系人的表,我正在尝试编写一个查询,允许我接受用户联系并通过JList中的名字,姓氏和ID显示它们,我非常困惑任何帮助将不胜感激。我看了一下内连接,但似乎越来越卡住了。如何构建查询以获取我需要的数据?我也试图单独查询以仅显示在线用户。
好的,我设法使用以下查询:
SELECT userName
FROM userdata, contacts
WHERE userID = "110110" AND userData.userID = contacts.contactID
这是从联系人表中获取用户ID“110110”,以及对应并返回联系人的userName(来自用户数据表)的contactID。我遇到了一个新问题,其中userID 112112将110110添加为朋友。因为这个112112在userID列中,而110110在contactID列中(contacts表)。这不应该是一个问题,因为它仍然显示它们是联系人。但我试图修改我的查询,也给我用户ID 112112的名称。有人可以帮我这个吗?
答案 0 :(得分:1)
姓名,姓名和身份证件
假设您使用ID表示contactID,否则应包含其他联接以从“联系人”中获取数据。
select u.Firstname, u.Surname, uc.contactID from User u
inner join UserContact uc on u.userID = uc.userID;
答案 1 :(得分:0)
获取所有用户 -
select Firstname, Surname, u.contactID from userdata u inner join usercontacts uc
on u.userID = uc.userID order by Firstname, Surname, u.userID
获取在线用户 -
select Firstname, Surname, u.contactID from userdata u inner join usercontacts uc
on u.userID = uc.userID where status = 'Online' order by Firstname, Surname, u.userID