Dados de tabelas de junção de consulta SQL

mafortis

Eu tenho 2 tabelas Userse TimeSheets, a Timesheetstabela tem uma coluna UserIdque é a tabela de usuários do formulário de identificação dos usuários, obviamente :)

Lógica

E estou tentando obter todos os dados da Timesheetstabela mais apenas o nome do usuário da tabela de usuários, mas de alguma forma parece que minha consulta é o contrário!

Agora eu sei que isso pode ser uma consulta simples, mas pessoalmente não tenho nenhuma ideia sobre SQL (minha má!)

Aqui está a minha consulta:

CREATE PROCEDURE [dbo].[GetTimeSheets]
AS
    begin
    SELECT t.Id, t.Enter_time, t.Exit_Time, t.Total, t.Date, t.Month, t.Year, u.Name as username
    FROM TimeSheets t
    FULL OUTER JOIN Users u ON u.Id = t.UserId
    GROUP BY t.Id,t.Enter_time,t.Exit_Time,t.Total, t.Date, t.Month, t.Year, u.Name
    end;

e aqui está a captura de tela dos dados retornados:

1

Como você pode ver, eu obtenho os nomes dos meus usuários sem a existência de nenhum dado na tabela de quadros de horários!

Essa visualização deveria obter a tabela de quadros de horários e, em seguida, o nome de usuário de cada linha dos usuários.

Atualizar

aqui está o esquema da tabela do quadro de horários

CREATE TABLE [dbo].[TimeSheets]
(
    [Id] INT NOT NULL PRIMARY KEY, 
    [UserId] INT NOT NULL, 
    [Enter_time] TIME NOT NULL, 
    [Exit_Time] TIME NULL, 
    [Total] TIME NULL, 
    [Date] DATE NULL, 
    [Month] NVARCHAR(50) NOT NULL , 
    [Year] NVARCHAR(50) NOT NULL , 
    CONSTRAINT [FK_TimeSheets_Users] FOREIGN KEY ([UserId]) REFERENCES [dbo].[Users]([Id])
);

aqui está a mesa dos usuários

CREATE TABLE [dbo].[Users] (
    [Id]       INT            NOT NULL,
    [UserType] NVARCHAR (50)  NOT NULL,
    [Name]     NVARCHAR (100) NOT NULL,
    PRIMARY KEY CLUSTERED ([Id] ASC)
);
forpas

Parece que você deseja uma INNERjunção e, como não está fazendo nenhuma agregação, não há necessidade de GROUP BY:

SELECT t.*, 
       u.Name AS username
FROM TimeSheets t
INNER JOIN Users u 
ON u.Id = t.UserId;

Ao fazer uma INNERjunção, você obtém resultados apenas quando há uma correspondência entre 2 linhas nas 2 tabelas.

Este artigo é coletado da Internet.

Se houver alguma infração, entre em [email protected] Delete.

editar em
0

deixe-me dizer algumas palavras

0comentários
loginDepois de participar da revisão

Artigos relacionados

Consulta de junção de várias tabelas SQL

SQL - Consulta de junção de 3 tabelas

Junção de dados de duas tabelas MS Access SQL

Consulta de tabelas de junção JPA

Consulta de dados de tabelas não relacionadas em SQL

Consulta de junção de banco de dados com três tabelas

Consulta envolvendo junção - combine dados de 2 de nossas tabelas

Consulta de junção SQL para uma visão com soma de colunas em 3 tabelas

Tabelas de junção SQL básicas

Junção de duas tabelas no SQL Server

SQL sobre tabelas de junção

Maneira correta de escrever consulta de junção sql para três tabelas

Como entender a consulta de junção de quatro tabelas

MySQL Atualizar consulta de tabelas de junção interna

Otimize a consulta de junção de várias tabelas

Consulta de tabelas de junção com SqlKata

Consulta SQL juntando tabelas de diferentes bancos de dados fdb

Consulta de junção SQL para 3 tabelas não funciona

Junção de 2 tabelas #temp com dados de diferentes servidores SQL Server

Junção e pedido de dados de tabelas diferentes

Como fazer consulta sql contendo junção interna de duas tabelas pais?

Consulta SQL de várias tabelas - as junções não funcionam

Consulta lenta junção interna de muitas tabelas HSQLDB

consulta mysql de 2 tabelas com junção interna

Junção interna de várias tabelas na consulta mysql

Sintaxe para consulta de junção interna para 4 tabelas

Consulta de junção interna com duas tabelas

MYSQL consulta de tabelas múltiplas usando junção

Recuperando dados de consulta de quatro tabelas usando o SQL Server 2008?