SQL重新查询同一个表
我有一个表,其中包含一系列信息: 零件号、类别、值、频率、频率、频率1、频率2 我正在尝试根据用户输入进行筛选。。。说他们输入了零件号“xzy” 我想重新查询该表,但也要包括符合xyz查询产生的所有相同值的部分 我想在我的子查询之前使用IN,但这只限于一列,我该如何处理这三列呢 当然,下面的选项不起作用>SQL重新查询同一个表,sql,filter,subquery,Sql,Filter,Subquery,我有一个表,其中包含一系列信息: 零件号、类别、值、频率、频率、频率1、频率2 我正在尝试根据用户输入进行筛选。。。说他们输入了零件号“xzy” 我想重新查询该表,但也要包括符合xyz查询产生的所有相同值的部分 我想在我的子查询之前使用IN,但这只限于一列,我该如何处理这三列呢 当然,下面的选项不起作用> SELECT backup.[Part Number], backup.Value, backup.FreqL, backup.FreqH FROM backup WHERE (backup
SELECT backup.[Part Number], backup.Value, backup.FreqL, backup.FreqH
FROM backup
WHERE (backup.Value AND backup.FREQ1 AND Backup.FREQ2) (
SELECT backup.Value, backup.FREQ1, backup.FREQ2, backup.CAT
FROM backup
WHERE ((backup.[Part Number]) ="xyz")
);
感谢您的帮助
多谢各位
JR我想你需要下面的查询-
SELECT B1.[Part Number], B1.Value, B1.FreqL, B1.FreqH
FROM backup B1
JOIN (SELECT Value, FREQ1 , FREQ2
FROM backup
WHERE [Part Number] ="xyz") B2 ON B1.Value = B2.Value
AND B1.FREQ1 = B2.FREQ1
AND B1.FREQ2 = B2.FREQ2;
典型的方法使用
存在:
SELECT b.[Part Number], b.Value, b.FreqL, b.FreqH
FROM backup b
WHERE EXISTS (SELECT 1
FROM backup b2
WHERE b2.[Part Number] = 'xyz' AND
b2.Value = b.Value AND
b2.FREQ1 = b.FREQ1 AND
b2.FREQ2 = b.FREQ2
);
您不会说您的平台在DB2元组中工作——就像这样:
SELECT backup.[Part Number], backup.Value, backup.FreqL, backup.FreqH
FROM backup
WHERE (backup.Value, backup.FREQ1, Backup.FREQ2) = (
SELECT backup.Value, backup.FREQ1, backup.FREQ2
FROM backup
WHERE ((backup.[Part Number]) ="xyz")
);
要么做EXISTS而不是IN,要么做self-join。我更喜欢join而不是EXISTS。(如果没有像db2中那样的tuples选项)
SELECT backup.[Part Number], backup.Value, backup.FreqL, backup.FreqH
FROM backup
WHERE (backup.Value, backup.FREQ1, Backup.FREQ2) = (
SELECT backup.Value, backup.FREQ1, backup.FREQ2
FROM backup
WHERE ((backup.[Part Number]) ="xyz")
);