所以我有一个从数据库中选择记录的过程。 proc有一个包含IP地址的varchar
参数。
proc正在从具有messageId
列(主键)的表中选择记录。
我有另一个表将IP链接到消息。此表格的列为ip
,列为messageId
。
从第一个表中选择记录时,我还想从第二个表中选择所有传入proc的IP地址与第二个表中IP地址匹配的每个记录中messageId
的每个记录的列我带回来了。
谢谢你们。
答案 0 :(得分:1)
您需要使用左连接:
select *
from table1 -- table with messageid
left join table2 -- table with ip
on table1.messageid = table2.messageid
where table2.ip = @ip
答案 1 :(得分:0)
假设您的设置与此类似:
*Table1*
MessageId | ColA | ColB
*Table2*
MessageId | Ip | ColX | ColY
你的sql会是这样的:
Select t1.MessageId, t1.ColA, t1.ColB, t2.Ip, t2.ColX, t2.Coly
From Table2 t2
Lef Outer Join Table1 t1 on t1.MessageId=t2.MessageId
Where t2.Ip = @varcharIP
答案 2 :(得分:0)
以下内容如何:
SELECT m.*, i.ip FROM Messages m
LEFT OUTER JOIN IPs i ON m.messageID = i.messageID
WHERE m.messageID = 'YOURMESSAGEID'
为各自的表格切换消息和IP