与in子句相关的查询

时间:2010-07-28 19:43:52

标签: sql

我有两张桌子:

表1

  • fid
  • 字段
  • queryorder

表2

  • fid
  • 字段
  • 名称
两个表中的

fidfield相同。我想要一个像

这样的查询
select fid 
  from table 1 
 where field in table 1 corresponding to name = dell 
                      and should not have queryorder = 1

4 个答案:

答案 0 :(得分:1)

你的问题没有明确的措辞,但是如果我正确地阅读它,你要显示的只是表1中的fid,其中table2 = dell中的“name”字段和表中的“queryorder”字段1不等于“1”。

SELECT
   table1.fid
FROM
      table1
   INNER JOIN
      table2
   ON
          table1.fid = table2.fid
      AND table1.field = table2.field
WHERE
       table2.name = 'dell'
   AND table1.queryorder <> 1

小建议:你不应该将字段命名为“名称” - 这是一个关键字,会让你头疼。

答案 1 :(得分:0)

SELECT fid FROM table1 WHERE name='dell' AND fid NOT IN (SELECT fid FROM table2 WHERE queryorder != 1)

很难说出你在问题中提出的问题。这将为您提供所有fid,其中table1中的名称为'dell',而table2中的queryorder不为1.

答案 2 :(得分:0)

这看起来真的只是一个加入,但我不知道你在寻找什么......

SELECT DISTINCT(fid) FROM Table1 T1
JOIN Table2 T2 ON T1.fid = T2.fid
WHERE t2.queryOrder != 1 AND T1.name = 'DELL'

答案 3 :(得分:0)

 select t1.fid 
 from table1 t1, table2 t2 
 where t1.fid = t2.fib
 AND t1.field  = t2.field
 and t2.name= 'dell'
 and t1.queryorder <> 1