+ Rispondi al messaggio
Visualizzazione dei risultati da 1 a 6 su 6

Select su più tabelle

  1. #1
    Nottambulo non è in linea Scolaretto
    Ciao, ho 3 tabelle, una è la classica tabella utenti di asp.net, una con una lista nomi e infina una dove riporto le selezioni dell'utente sui nomi.

    Tabelle:

    CREATE TABLE [dbo].[AspNetUsers] (
        [Id]                   NVARCHAR (128) NOT NULL,
        [Email]                NVARCHAR (256) NULL,
        [EmailConfirmed]       BIT            NOT NULL,
        [PasswordHash]         NVARCHAR (MAX) NULL,
        [SecurityStamp]        NVARCHAR (MAX) NULL,
        [PhoneNumber]          NVARCHAR (MAX) NULL,
        [PhoneNumberConfirmed] BIT            NOT NULL,
        [TwoFactorEnabled]     BIT            NOT NULL,
        [LockoutEndDateUtc]    DATETIME       NULL,
        [LockoutEnabled]       BIT            NOT NULL,
        [AccessFailedCount]    INT            NOT NULL,
        [UserName]             NVARCHAR (256) NOT NULL,
        CONSTRAINT [PK_dbo.AspNetUsers] PRIMARY KEY CLUSTERED ([Id] ASC)
    );
    
    
    GO
    CREATE UNIQUE NONCLUSTERED INDEX [UserNameIndex]
        ON [dbo].[AspNetUsers]([UserName] ASC);
    
    
    CREATE TABLE [dbo].[Names] (
        [Id]          INT            IDENTITY (1, 1) NOT NULL,
        [Nome]        NVARCHAR (50)  NULL,
        [Oroscopo]    NVARCHAR (50)  NULL,
        [Significato] NVARCHAR (MAX) NULL,
        [Sesso]       BIT            DEFAULT ((0)) NULL,
        [Origine]     INT            DEFAULT ((0)) NULL,
        PRIMARY KEY CLUSTERED ([Id] ASC)
    );
    
    
    
    CREATE TABLE [dbo].[UserStars] (
        [Id]     DECIMAL (18)   IDENTITY (1, 1) NOT NULL,
        [NameID] INT            NOT NULL,
        [UserID] NVARCHAR (128) NOT NULL,
        CONSTRAINT [PK_UserStars] PRIMARY KEY CLUSTERED ([Id] ASC)
    );
    
    Quando faccio il select mi dovrebbe ritornare la lista dei nomi con i suoi vari campi più un valore booleano che indica se il nome è stato selezionato dall'utente loggato.
    Il primo pezzo risulta semplice, una normalissima query, ma come faccio ad aggiungere il valore booleano true quando il nome e l'utente al momento collegato sono registrati sull'altra tabella?
    Consigliate una stesura diversa dei dati?
    Grazie

  2. #2
    Nottambulo non è in linea Scolaretto
    Al momento sono arrivato a questa query, che funziona:

    SELECT Id, Nome, Oroscopo, Origine, Sesso, Significato, (SELECT CAST(COUNT(*) AS BIT) AS Expr1 FROM UserStars WHERE Names.Id = UserStars.NameID AND UserStars.UserID = @UserId) AS Star FROM Names WHERE (LEFT (Nome, 1) = @Nome) AND (Sesso = @Sesso)
    

  3. #3
    L'avatar di nman
    nman non è in linea Scribacchino
    Quote Originariamente inviato da Nottambulo Visualizza il messaggio
    .......    
    [Id]     DECIMAL (18)   IDENTITY (1, 1) NOT NULL,
    ........
    
    Non ho capito la tua domanda (poi mi sembra che hai già risolto autonomamente)

    pero ho un dubbio ......

    Perché hai un ID autoincrementale che conterrà sempre un intero in formato DECIMAL ???

    .

  4. #4
    Nottambulo non è in linea Scolaretto
    Ciao, non conoscevo questo pezzo di query:

    SELECT CAST(COUNT(*) AS BIT
    
    Ora mi funziona tutto. L'id non serve a niente, l'avevo inserito per una mia comodità, attualmente inutile.
    Grazie

  5. #5
    L'avatar di nman
    nman non è in linea Scribacchino
    Quote Originariamente inviato da Nottambulo Visualizza il messaggio
    ........ L'id non serve a niente, ........
    Sei sicuro ???

  6. #6
    Nottambulo non è in linea Scolaretto
    si certo, la tabella l'ho copiata da quella aspnetuserroles, dove non c'è l'id. Avevo inserito l'id pensando di facilitare delle operazioni, ma sul lato pratico non ho riscontrato vantaggi. Cancellata. Sull'attuale tabella in uso, oltre ad aver rimosso l'id, ho indicizzato le due colonne e creato le relazione. Passo passo come quella di esempio nell'identity di asp.net.

+ Rispondi al messaggio

Potrebbero interessarti anche ...

  1. 'Select' su più tabelle in DB access diversi
    Da untipo nel forum Visual Basic .Net
    Risposte: 11
    Ultimo Post: 18-08-2016, 19:15
  2. [SQL]SELECT fra 2 tabelle
    Da Fabio_ nel forum Altri Database Server
    Risposte: 1
    Ultimo Post: 19-05-2010, 14:49
  3. [SQL]Select con 4 tabelle
    Da fabium75q nel forum Altri Database Server
    Risposte: 5
    Ultimo Post: 14-11-2007, 18:38
  4. Select su 2 tabelle
    Da net-addiction nel forum ASP 3, ASP .Net
    Risposte: 4
    Ultimo Post: 23-11-2005, 17:08
  5. Select su più tabelle
    Da tooshy nel forum ASP 3, ASP .Net
    Risposte: 6
    Ultimo Post: 25-05-2005, 16:10