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

z0qdvdin  于 2021-07-24  发布在  Java
关注(0)|答案(3)|浏览(419)

我有两个表: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表中的条目。我想要一个脚本,其中用户只需输入firstname,lastname,它显示了我上面提到的两个表的列。
你知道吗?抱歉,我是sql的笨蛋,尝试了几个noobie技巧,都没用。(任何帮助都将不胜感激。
谢谢你们友好的回答!解决了我的问题,都是好答案!:)你们真漂亮!

fcy6dtqo

fcy6dtqo1#

将两个表连接在一起:

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

6ljaweal2#

使用子查询

SELECT * FROM CFSK WHERE ConID in 

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

dzjeubhm3#

IN 或者 EXIESTS 是一种典型的方法:

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) .

相关问题