[英]Sql query from one table and to query another table with result from first query table
[英]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')
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)
上的索引。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.