繁体   English   中英

使用一个 SQL 查询的结果从另一个表中查找结果?

[英]Using result of one SQL query to find the result from another table?

我有两个表:Con 和 CFSK 两个表都有一个公共列:ConID

Con 具有以下列(至少我关心的那些:ConID、Firstname、Lastname、SSN、DOB、HDate) CFSK 具有以下列:Keyval、ConID、SystemID、Active、StChDt

通常我这样做:

SELECT * 
  FROM Con
 WHERE Firstname = 'Jon' 
   and Lastname = 'Snow'

运行此程序后,我复制 ConID 的值(假设它是 99999),然后针对 CFSK 表运行它:

SELECT * 
  FROM CFSK
 WHERE ConID IN (99999)

我想要一个合并这两个命令的 SQL 脚本。

例如,假设我想查找 Arya Stark 在 CFSK 表中的条目。 我想要一个脚本,用户只需输入名字、姓氏,它会显示我上面提到的两个表的列。

任何想法? 抱歉,我是 SQL 的菜鸟,尝试了一些菜鸟技巧,但都没有奏效。 :( 任何帮助将不胜感激。

谢谢你们的友好回答,解决了我的问题:所有这些都是很好的答案! :) 你们很漂亮!

您将两个表连接在一起:

SELECT Con.*, CFSK.*
FROM Con 
JOIN CFSK ON Con.ConID = CFSK.ConID
WHERE
    FirstName = 'Jon'
AND LastName = 'Snow'

使用子查询

SELECT * FROM CFSK WHERE ConID in 

(SELECT ConID FROM Con WHERE Firstname = 'Jon' and Lastname = 'Snow')

INEXIESTS是一种典型的方法:

SELECT *
FROM CFSK
WHERE EXISTS (SELECT 1
              FROM CON
              WHERE Con.Firstname = 'Jon' and CON.Lastname = 'Snow' AND
                    CFSK.ConID = CON.ConID
             );

注意:这假定用于比较的适当 id 是CON.ConID

我喜欢这种方法,因为它适用于CON(ConID, FirrstName, LastName)上的索引。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM