2011-02-07 17 views
0

我试图做一个查询两个表运行的查询:在多个表

  • SIMPLE_PERSON有3个字段(名称,电网和社会保障卡)
  • INDIVIDUAL_AGGREGATE有4个字段:网格(PK),式(d(驱动器),或者C(客户端)),代码,simple_person(simple_person的外键))

当我注册了一些人,我一定要救他们的SIMPLE_PERSON并设置(驱动程序或客户端)的聚合类型。并且不能有两个相同的社保卡号码。

使用AJAX,我扔返回如果SSC被注册的警告框一个检查,但我的SQL查询不起作用。如果社会保障卡已经注册,我需要提供返回给我的查询。我试图使用EXISTS,但我没有取得太大的成功:

SELECT simple_person.name 
    FROM simple_person 
WHERE SSC = 'SSC_NUMBER' 
    AND EXISTS (SELECT individual_aggregate.code FROM individual_aggregate 
       WHERE code = 'xx' 
        AND individual_aggregate.type = 'D'); 

有人可以帮助我使这个查询工作?

+2

我祈祷到互联网,你实际上并没有SSN存储在数据库中的神。 – 2011-02-07 17:06:24

+0

为什么你需要查询的“EXISTS ...”部分?如果你正在查看SSC尚未注册,难道你不能只是做一个`SELECT count(*)FROM simple_person WHERE SSC ='SSC_NUMBER'`? – 2011-02-07 17:17:44

回答

0

没有你想检查是否有在某个社会安全号码上注册的人?

如果是我所做的是两个表之间 加入并返回行是等于一个特定的社会安全号码。

您可以添加到WHERE语句(AND IA.code = 'XX' AND IA.Type = 'd')

SELECT SP.Name 
FROM simple_person AS SP 
INNER JOIN individual_aggregate AS IA ON SP.grid = IA.grid 
WHERE SP.SSC = {someNumber} 

帮助你的?

0

你的EXISTS子句中的子查询实际上不打表,视图或其他。

+0

同意,将要登录评论检查,如果这是一个错字虽然 – 2011-02-07 17:14:08

0

你的子选择的FROM子句缺少。

选择 individual_aggregate.code FROM individual_aggregate WHERE 码= 'XX' 和individual_aggregate.type = 'd'

问候 Sigersted