【问题标题】:Select Match column from Difference Table从差异表中选择匹配列
【发布时间】:2011-02-14 01:47:56
【问题描述】:

尝试获取过滤结果的标题 POS 俱乐部标题和物品标题 在两个日期之间匹配memberid的过滤记录

这是我的表结构

tblPosClub

  • PosClubID
  • 俱乐部ID
  • 员工编号
  • 会员ID
  • 物品ID
  • 项目数量
  • 项目总计
  • PosClubDate

tblClub

  • 俱乐部ID
  • 俱乐部名称
  • ClubDesc

tblItem

  • 物品ID
  • 商店ID
  • 物品标题
  • 项目描述
  • 项目数量
  • 商品价格

我想找回来

      * 
 From tblPosClub
Where (tblPosClub.MemberID = @Memberid) 
  AND (tblPosClub.PosClubDate >= @AfterDate) 
  AND (tblPosClub.PosClubDate < @BeforeDate)

...和 ​​tblClub.ClubTitle + tblItem.ItemTitle 根据过滤行匹配 我可以知道我应该用这个 sql 命令修改什么吗?

    SELECT tblPosClub.PosClubID, 
           tblPosClub.ClubID, 
           tblPosClub.MemberID, 
           tblPosClub.ItemID, 
           tblPosClub.ItemQuantity, 
           tblPosClub.ItemTotal, 
           tblPosClub.PosClubDate, 
           tblClub.ClubTitle, tblItem.ItemTitle
      FROM tblPosClub 
CROSS JOIN tblClub 
CROSS JOIN tblItem
     WHERE (tblPosClub.MemberID = @Memberid) 
       AND (tblPosClub.PosClubDate >= @AfterDate) 
       AND (tblPosClub.PosClubDate < @BeforeDate)

提前致谢 =D

【问题讨论】:

  • 返回匹配该行 pos id 的 pos 标题的结果和匹配该行项目 id 的项目标题...例如,posid 2 是 golf 并且结果 posid 行的成员 1 是 2然后在结果中返回高尔夫

标签: c# sql variable-assignment


【解决方案1】:

使用INNER JOIN

FROM tblPosClub INNER JOIN tblClub
    ON tblPosClub.ClubID = tblClub.ClubID
  INNER JOIN tblItem
    ON tblPosClub.ItemID = tblItem.ItemID

有关各种联接类型的详细信息,请参阅Wikipedia

【讨论】:

  • 但这将无法获取其他俱乐部和物品@.@,会员 1 从俱乐部 1、2、3 购买并使用此内部连接,仅返回俱乐部 1 结果...
  • @spencer-lim 你能在你的问题中发布想要的结果吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-12
  • 2019-03-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多