好吧,我猜我需要一个子查询来解决这个问题,我对这些有点生疏。所以我有3张桌子:
tblAccount
tblItem
tblAccountItem
tblAccount - 有用户信息和 AccountID
tblItem - 有项目信息和 ItemID
AccountID - 有 3 个字段 - AccountItemID / AccountID / ItemID
一个账户可以有很多项目,一个项目可以有很多账户。示例数据:
tbl 帐户
AccountID AccountName AccountEmail
1 John Smith john@smith.com
2 Fred John fred@john.com
3 George Mike george@mike.com
表项
ItemID ItemName ItemDescription
1 Hammer Smashes things
2 Axe Breaks things
好的,可以说锤子属于约翰、弗雷德和乔治。斧头只属于约翰和弗雷德。
tblAccountItem
AccountItemID AccountID ItemID
1 1 1
2 2 1
3 3 1
4 1 2
5 2 2
所以我想展示 John 拥有哪些物品,并展示还有谁拥有该物品。我要显示的输出是:
ItemName ItemDescription OtherOwners
Hammer Smashes things Fred, George
Axe Breaks things Fred
任何帮助将不胜感激!
ctrahey 的答案是完美的,但我有一点要补充的条件。tblAccount 中有 2 种类型的帐户,由一个字段表示。
tbl 帐户
AccountID AccountName AccountEmail AccountDescription AccountTypeID
1 John Smith john@smith.com NULL 1
2 Fred John fred@john.com NULL 1
3 George Mike george@mike.com Runner 2
tblAccountTypeID
AccountTypeID AccountType
1 User
2 Admin
如果 AccountTypeID 为 1,那么我需要输出 AccountEmail。如果 AccountTypeID 为 2,我需要输出 AccountDescription。例如输出(与上面相同的故事):
ItemName ItemDescription OtherOwners
Hammer Smashes things Fred, Runner
Axe Breaks things Fred
关闭 ctrahey 我猜需要创建 ALIAS 字段的查询。就像是:
WHERE AccountTypeID = 1 (SELECT AccountName)
WHERE AccountTypeID = 2 (SELECT AccountDescription)
我希望这是有道理的,感谢到目前为止的所有帮助!