我正在尝试进行一个简单的查询,该查询从两个表中检索数据。一个表“ ForumPosts”保存与论坛中帖子相关的数据,另一个表“ Users”保存有关我系统上用户的数据。
我遇到的问题是,当我想收集有关哪些用户发布了哪些帖子的数据时。
这是我的桌子:
functionB
create function functionA(
@Type nvarchar(max)
, @isArray bit = 0
)
returns @tempTable table (
FieldId nvarchar(4000)
, FieldName nvarchar(4000)
, FieldType nvarchar(4000)
, IsArray bit)
as
begin
declare @tempTableA table (
FieldId nvarchar(4000)
, FieldName nvarchar(4000)
, FieldType nvarchar(4000)
, IsArray bit)
insert @tempTableA
select
*
from
TableA
where
@isArray = 1 and @Type='TypeA'
insert @tempTable
select * from functionB(@tempTableA)
return
end
go
我尝试查看其他一些帖子,例如: Simple MySQL Join to replace foreign key 他们似乎都和我有同样的问题,但是我似乎找不到我的解决方案出了什么问题。
这是我当前正在使用的查询。
create function functionB(
--How to get the table variable from functionA?
@tempTableA table
)
returns @tempTableB table (
FieldId nvarchar(4000)
, FieldName nvarchar(4000)
, FieldType nvarchar(4000)
, IsArray bit)
as
begin
insert @tempTableB
select
FieldId [Id]
, FieldName [Name]
, FieldType [Type]
, IsArray Array
from
@tempTableA
return
end
go
但是返回的是:
mysql> select * from ForumPosts;
+----+--------+-----------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------+---------+---------------------+
| ID | UserID | Title | Post | ImgFile | SubmissionTime |
+----+--------+-----------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------+---------+---------------------+
| 1 | 1 | More tests | tests... | NULL | 2019-02-26 01:39:28 |
| 2 | 2 | Another test post | tests... | NULL | 2019-02-26 22:52:26 |
| 3 | 1 | Test post | tests… | NULL | 2019-03-27 22:10:38 |
+----+--------+-----------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------+---------+---------------------+
它的结果列出了用户的外键,但我想要他们关联的用户名。
我觉得这应该是一个非常简单的修复程序,但是我似乎找不到它。
答案 0 :(得分:0)
在如下所示的选择语句中添加Users.UserName,
select
Title,
Users.UserName,
Users.ID as Author,
SubmissionTime as Posted
from ForumPosts
left join
Users on ForumPosts.UserID = Users.ID
order by SubmissionTime desc;