多个联接和结果需要是不同的和/或分组的

时间:2013-10-30 01:21:23

标签: sql sql-server sql-server-2008

我有以下SQL查询工作......差不多。我得到的结果是:

  • Photo Op
  • Photo Op
  • 任何物品签名
  • 任何物品签名

我想得到的是:

  • Photo Op
  • 任何物品签名

这是我的代码:

SQL = "SELECT * "
SQL = SQL + "FROM dbo.event "
SQL = SQL + "JOIN dbo.player_schedule "
SQL = SQL + "ON dbo.event.id=dbo.player_schedule.id_event "
SQL = SQL + "JOIN dbo.player "
SQL = SQL + "ON dbo.player_schedule.id_player=player.id "
SQL = SQL + "JOIN dbo.show_inventory "
SQL = SQL + "ON dbo.player.id=show_inventory.id_player "
SQL = SQL + "JOIN dbo.inventory_item_list "
SQL = SQL + "ON dbo.show_inventory.id_item=inventory_item_list.id "
SQL = SQL + "WHERE dbo.show_inventory.id_player ='"
SQL = SQL + Request.querystring("pass_id_player") & "' "
SQL = SQL + "AND dbo.event.id = '"
SQL = SQL + Request.querystring("pass_id_event") & "' "
SQL = SQL + "ORDER BY dbo.inventory_item_list.sequence"

表     player     event

我只能发布2个链接。但是,其他表具有以下名称。只需在URL末尾更改它们:player_schedule,inventory_item_list,show_inventory

1 个答案:

答案 0 :(得分:0)

编辑:假设dbo.event.name是您想要的数据,

SQL = "SELECT dbo.event.name "
SQL = SQL + "FROM dbo.event "
SQL = SQL + "JOIN dbo.player_schedule "
SQL = SQL + "ON dbo.event.id=dbo.player_schedule.id_event "
SQL = SQL + "JOIN dbo.player "
SQL = SQL + "ON dbo.player_schedule.id_player=player.id "
SQL = SQL + "JOIN dbo.show_inventory "
SQL = SQL + "ON dbo.player.id=show_inventory.id_player "
SQL = SQL + "JOIN dbo.inventory_item_list "
SQL = SQL + "ON dbo.show_inventory.id_item=inventory_item_list.id "
SQL = SQL + "WHERE dbo.show_inventory.id_player ='"
SQL = SQL + Request.querystring("pass_id_player") & "' "
SQL = SQL + "AND dbo.event.id = '"
SQL = SQL + Request.querystring("pass_id_event") & "' "
SQL = SQL + "GROUP BY dbo.event.name "
SQL = SQL + "ORDER BY dbo.inventory_item_list.sequence"