2 つのビューから残りの行を選択する必要がある SQL Server データベースがあります。
その背後にある考え方は次のとおりです。ゲームの部門を 1 つのテーブルに保存し、氏族を別のテーブルに保存します。
- は
vwGetGameDivisions
、分割できるすべてのゲームを取得します。 vwGetClanDivisions
は、クランがサブスクライブしている現在のすべてのゲーム ディビジョンを取得します。
現在、
SELECT dbo.vwGetGameDivisions.name, dbo.vwGetClanDivisions.clanName
FROM dbo.vwGetClanDivisions
RIGHT OUTER JOIN
dbo.vwGetGameDivisions
ON dbo.vwGetClanDivisions.gameName = dbo.vwGetGameDivisions.name
登録されているすべての「ディビジョン」と「クラン」を取得します。
残りの部門 (特定のクランが登録されていない残りの部門)を表示したいので、それを にバインドしてdropDownList
、クランがまだサブスクライブできるものを確認できるようにします。
私はまだSQLクエリの初心者であり、これについてどうすればよいかさえ知りません..
を試しましWHERE (dbo.vwGetClanDivisions.clanName = NULL)
たが、それはクランをまったく持たない師団のみを返します。
編集 - 構造:
CREATE TABLE [dbo].[tblSiteClanGameDivision](
[id] [int] IDENTITY(1,1) NOT NULL,
[clanId] [int] NOT NULL,
[gameId] [int] NOT NULL,
[removed] [tinyint] NOT NULL,
[dateAdded] [datetime] NOT NULL,
CONSTRAINT [PK_tblSiteClanGameDivision] PRIMARY KEY CLUSTERED
CREATE TABLE [dbo].[tblSiteGame](
[id] [int] IDENTITY(1,1) NOT NULL,
[name] [nvarchar](200) NOT NULL,
[description] [nvarchar](700) NULL,
[thumbnailLocation] [nvarchar](100) NULL,
[genreId] [int] NOT NULL,
[isDivision] [tinyint] NOT NULL,
CONSTRAINT [PK__tblGame__3213E83F03317E3D] PRIMARY KEY CLUSTERED
CREATE VIEW [dbo].[vwGetClanDivisions]
AS
SELECT dbo.tblSiteClanDetail.clanId, dbo.tblSiteClanDetail.clanName, dbo.tblSiteGame.id AS gameId, dbo.tblSiteGame.name AS gameName,
dbo.tblSiteClanGameDivision.removed, dbo.tblSiteClanGameDivision.dateAdded
FROM dbo.tblSiteClanDetail
INNER JOIN dbo.tblSiteClanGameDivision ON dbo.tblSiteClanDetail.id = dbo.tblSiteClanGameDivision.clanId
INNER JOIN dbo.tblSiteGame ON dbo.tblSiteClanGameDivision.gameId = dbo.tblSiteGame.id
GO
CREATE VIEW [dbo].[vwGetGameDivisions]
AS
SELECT id, name, thumbnailLocation, isDivision
FROM dbo.tblSiteGame
WHERE (isDivision = 1)
GO