在两个表上对消息执行SQL连接
我可以加入下面的两张表吗 我的目标是在在两个表上对消息执行SQL连接,sql,sql-server,vb.net,join,Sql,Sql Server,Vb.net,Join,我可以加入下面的两张表吗 我的目标是在ASP.NET中创建一个查询,以在一组数据中列出messages和Messages2中的所有消息 消息1: Messages1_ID, Thread_ID, DateCreated, Title, Body 消息2: Thread_ID, Messages2_ID, DateSent, DateMsg2Downloaded, Msg2Subject, Body 我尝试了以下查询: SELECT Messages1.body, Message
ASP.NET
中创建一个查询,以在一组数据中列出messages和Messages2中的所有消息
消息1:
Messages1_ID,
Thread_ID,
DateCreated,
Title,
Body
消息2:
Thread_ID,
Messages2_ID,
DateSent,
DateMsg2Downloaded,
Msg2Subject,
Body
我尝试了以下查询:
SELECT Messages1.body, Messages2.Body
from Messages1, Messages2
where Messages1 = '9'
我在Messages1中有1行,在Messages2中有9行(线程id为9)
但是我得到了Messages2中所有唯一的行,对于返回的每一行Messages1,body会一次又一次地重复
我认为我的桌子设计不正确,但首先值得一问。你要找的是工会。这将合并两个查询的结果
SELECT Messages1.body, Messages2.Body
from Messages1
inner join Messages2 ON Messages1.Thread_ID = Messages2.Thread_ID
where Messages1.Thread_ID = '9'
SELECT Messages1.body
from Messages1
where Messages1.Thread_ID = '9'
union
SELECT Messages2.Body
from Messages2
where Messages2.Thread_ID = '9'
你要找的是工会。这将合并两个查询的结果
SELECT Messages1.body
from Messages1
where Messages1.Thread_ID = '9'
union
SELECT Messages2.Body
from Messages2
where Messages2.Thread_ID = '9'
根据您发布的代码判断,您希望使用 要使用联接,两个表之间需要一个公共字段。我假设你的情况是threadID
SELECT a.body, b.Body
from Messages1 a
inner join Messages2 b
on a.Thread_ID = b.Thread_ID
where a.Thread_ID = '9'
根据您发布的代码判断,您希望使用 要使用联接,两个表之间需要一个公共字段。我假设你的情况是threadID
SELECT a.body, b.Body
from Messages1 a
inner join Messages2 b
on a.Thread_ID = b.Thread_ID
where a.Thread_ID = '9'
这里有两种不同的情况,因为我不能100%确定你到底在追求什么
SELECT * FROM
(SELECT m1.body
FROM Messages1 m1
UNION ALL
SELECT m2.Body
FROM Messages2 m2
)
WHERE ThreadId = '9'
或
这里有两种不同的情况,因为我不能100%确定你到底在追求什么
SELECT * FROM
(SELECT m1.body
FROM Messages1 m1
UNION ALL
SELECT m2.Body
FROM Messages2 m2
)
WHERE ThreadId = '9'
或
此查询也正确,但您忽略了以下条件:
Messages1.ThreadId=Messages2.ThreadId
SELECT Messages1.body, Messages2.Body
from Messages1, Messages2
where Messages1.ThreadId= Messages2.ThreadId and Messages1 = '9'
此查询也正确,但您忽略了以下条件:
Messages1.ThreadId=Messages2.ThreadId
SELECT Messages1.body, Messages2.Body
from Messages1, Messages2
where Messages1.ThreadId= Messages2.ThreadId and Messages1 = '9'
这两个表之间的公共字段是什么?他们之间的关系如何。是通过线程ID吗?您的输入和预期输出是什么?很难辨别,因为SQL没有提供您想要的。这两个表之间的公共字段是什么?他们之间的关系如何。是通过线程ID吗?您的输入和预期输出是什么?很难辨别,因为你的SQL没有给你你想要的。你应该在每个SQL语句中为
Thead_id=9
@JNevill添加一个WHERE语句,我不知道该怎么做,因为问题中不清楚这就是问题所在!谢谢你们所有人的快速回复。我应该在每个Thead_id=9
@JNevill的回复中都添加一个WHERE语句。我不知道该怎么做,因为问题中不清楚这是一个!感谢大家的快速回复。编辑以删除最后2条编辑以删除最后2条