Ver Mensaje Individual
  #1 (permalink)  
Antiguo 01/07/2010, 07:32
Sergiio
 
Fecha de Ingreso: diciembre-2008
Mensajes: 27
Antigüedad: 15 años, 4 meses
Puntos: 0
Ayuda consulta SQL

Quiero mostrar unos datos por pantalla, pero esos datos estan diferenciados por 2 campos que se encuentran en tablas diferentes.

Primero os pongo las tablas como son sus estructuras para que podais ayudarme mejor:

Tabla Character
Código:
CREATE TABLE [dbo].[Character] (
	[AccountID] [varchar] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
	[Name] [varchar] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
	[cLevel] [int] NULL ,
	[LevelUpPoint] [int] NULL ,
	[Class] [tinyint] NULL ,
	[Experience] [int] NULL ,
	[Strength] [smallint] NULL ,
	[Dexterity] [smallint] NULL ,
	[Vitality] [smallint] NULL ,
	[Energy] [smallint] NULL ,
	[Inventory] [varbinary] (1728) NULL ,
	[MagicList] [varbinary] (180) NULL ,
	[Money] [int] NULL ,
	[Life] [real] NULL ,
	[MaxLife] [real] NULL ,
	[Mana] [real] NULL ,
	[MaxMana] [real] NULL ,
	[MapNumber] [smallint] NULL ,
	[MapPosX] [smallint] NULL ,
	[MapPosY] [smallint] NULL ,
	[MapDir] [tinyint] NULL ,
	[PkCount] [int] NULL ,
	[PkLevel] [int] NULL ,
	[PkTime] [int] NULL ,
	[MDate] [smalldatetime] NULL ,
	[LDate] [smalldatetime] NULL ,
	[CtlCode] [tinyint] NULL ,
	[DbVersion] [tinyint] NULL ,
	[Quest] [varbinary] (50) NULL ,
	[Leadership] [smallint] NULL ,
	[ChatLimitTime] [smallint] NULL ,
	[FruitPoint] [int] NULL ,
	[zs_count] [int] NULL ,
	[ZY] [int] NULL ,
	[FQBZ] [int] NULL ,
	[FQCount] [int] NULL ,
	[FQName] [varchar] (10) COLLATE Chinese_PRC_CI_AS NULL ,
	[Resets] [int] NOT NULL ,
	[SCFMasterLevel] [int] NULL ,
	[SCFMasterPoints] [int] NULL ,
	[SCFMasterSkills] [varbinary] (300) NULL ,
	[SCFPCPoints] [int] NULL ,
	[SCFMarried] [int] NULL ,
	[SCFMarryHusbandWife] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
	
) ON [PRIMARY]
GO

Tabla Guild


Código:
CREATE TABLE [dbo].[Guild] (
	[G_Name] [varchar] (8) COLLATE Chinese_PRC_CI_AS NOT NULL ,
	[G_Mark] [varbinary] (32) NULL ,
	[G_Score] [int] NULL ,
	[G_Master] [varchar] (10) COLLATE Chinese_PRC_CI_AS NULL ,
	[G_Count] [int] NULL ,
	[G_Notice] [varchar] (60) COLLATE Chinese_PRC_CI_AS NULL ,
	[Number] [int] IDENTITY (1, 1) NOT NULL ,
	[G_Type] [int] NOT NULL ,
	[G_Rival] [int] NOT NULL ,
	[G_Union] [int] NOT NULL ,
	[MemberCount] [int] NULL 
) ON [PRIMARY]
GO
Tabla MEMB_STAT

Código:
CREATE TABLE [dbo].[MEMB_STAT] (
	[memb___id] [varchar] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
	[ConnectStat] [tinyint] NULL ,
	[ServerName] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
	[IP] [varchar] (15) COLLATE Chinese_PRC_CI_AS NULL ,
	[ConnectTM] [smalldatetime] NULL ,
	[DisConnectTM] [smalldatetime] NULL ,
	[OnlineHours] [int] NULL 
) ON [PRIMARY]
GO


He pensado que se tendria que comparar las 3 tablas porque yo quiero hacer una consulta que me muestre el G_Name. G_Score, G_Master de la tabla Guild pero solo las que el ServerName de la tabla MEMB_STAT sea 'FAST'

Primero probe de hacer la consulta entre las 2 tablas pero me di cuenta que no habia campos comunes para relacionar por eso quise poner la tabla Character, intermedia para comparar campos iguales.


Hice esta consulta para que me entendais mejor que busco, pero esta consulta no funciona correctamente:

Select g.G_Name, g.G_Master, g.G_Score from Character as c JOIN MEMB_STAT as m ON (c.accountid=m.memb___id) JOIN Guild as g ON (g.G_Name=c.Name) Where ServerName='FAST'



Haber si alguien sabe como podria hacer esta consulta o el error que cometo, le he dado miles de vueltas y ya no se por donde cogerlo.

Gracias