在多个表上运行查询

时间:2011-02-07 17:02:27

标签: sql postgresql

我正在尝试在两个表中进行查询:

  • SIMPLE_PERSON包含3个字段(名称,网格和社会保障卡)
  • INDIVIDUAL_AGGREGATE有4个字段:grid(PK),type(D(Driver)或C(client)),code,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');

有人可以帮助我进行此查询吗?

3 个答案:

答案 0 :(得分:0)

EXISTS子句中的子查询实际上并未触及表,视图或其他。

答案 1 :(得分:0)

您的子选择缺少FROM子句。

选择      individual_aggregate.code 从      individual_aggregate 哪里      code ='xx' AND individual_aggregate.type ='D'

此致    Sigersted

答案 2 :(得分: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}

帮了你?