我在连接三个表中的数据时遇到了困难。
这是一家房地产公司的匿名购物车。inmuebles 表包含属性的详细信息。如果有人想要查看,我会使用他们的 asp.net sessionid 在 temppropertylist 表中创建一条记录,并在 anonymouscart 表中添加他们感兴趣的属性的记录。
我在 gridview 控件中显示这个,所以当我重新绑定它时,我需要一个查询,从三个表中提取信息,显示所有属性数据,以及每个属性是否已被选中进行查看。为此,将来自anonymouscart 的propertyid 或null 连接到inmuebles 表中的每条记录就足够了,因为我可以使用它来切换复选框。
我发现我的原始查询是从匿名购物车中提取 temppropertylist 表中所有相关记录的信息,所以我尝试使用连接中的 sessionid 过滤它,但它现在只显示存在相关的 inmuebles 记录在匿名购物车中记录。
我已经阅读了 Stackoverflow 上的所有列表,但我无法理解我做错了什么
CREATE TABLE [dbo].[anonymouscart](
[Id] [int] IDENTITY(1,1) NOT NULL,
[temppropertylist_id] [int] NOT NULL,
[timestamp] [datetime2](7) NOT NULL,
[propertyid] [int] NULL
) ON [PRIMARY]
Id temppropertylist_id timestamp propertyid
40 38 2013-09-24 08:24:00.0772687 2
39 37 2013-09-24 08:03:56.1163987 1
CREATE TABLE [dbo].[temppropertylist](
[ID] [int] IDENTITY(1,1) NOT NULL,
[sessionID] [nvarchar](50) NULL,
[userID] [int] NULL,
[timestamp] [datetime2](7) NOT NULL
) ON [PRIMARY]
ID sessionID userID timestamp
37 jgyo5i4vne35bcolow23je1q NULL 2013-09-24 08:02:29.1129679
38 uuoawmav4jhi3hy3g3v4vr3o NULL 2013-09-24 08:23:58.8604375
CREATE TABLE [dbo].[Inmuebles](
[Id] [int] IDENTITY(1,1) NOT NULL,
[Title] [nvarchar](99) NULL,
[tipodemanda] [nvarchar](10) NULL,
[Descripcioni] [nvarchar](max) NULL,
[PrecioVenta] [int] NULL,
[Imagen] [nvarchar](255) NULL,
[onhold] [bit] NOT NULL,
) ON [PRIMARY]
我的查询:
SELECT inmuebles.title
, inmuebles.Descripcioni
, inmuebles.ID
, inmuebles.PrecioVenta
, inmuebles.imagen
, MIN(anonymouscart.propertyID) AS propertyID
FROM inmuebles
FULL OUTER JOIN anonymouscart ON Inmuebles.ID = anonymouscart.propertyID
FULL OUTER JOIN temppropertylist ON anonymouscart.temppropertylist_id = temppropertylist.ID
AND (temppropertylist.sessionid = 'uuoawmav4jhi3hy3g3v4vr3o')
WHERE tipodemanda = 'venta'
AND onhold = 0
GROUP BY
inmuebles.title
, inmuebles.Descripcioni
, inmuebles.ID
, inmuebles.PrecioVenta
, inmuebles.imagen
这将返回:
title Descripcioni id PrecioVenta imagen propertyid
'Two for One' 'This is a ....' 2 110000 NULL 2
但我想要的是 inmuebles 表中的所有记录,其中 propertyid 为空
这是来自 inmuebles 表的数据:
title Descripcioni id PrecioVenta imagen onhold tipodemanda
'Casa Bodega', 'This is a...', 1, 11000, '1_27152256.jpg',0, 'venta'
'Two for One', 'This is a...', 2, 110000, NULL, 0, 'venta'