加入查询?

时间:2011-08-12 02:33:34

标签: sql sqlite join

如何将这两个查询加在一起。

SELECT * 
  FROM tbl_person 
 WHERE tbl_person.status_id = '+ status_dg.selectedItem.status_id +';

SELECT * 
  FROM tbl_settings 
 WHERE tbl_settings.status_id = '+ status_dg.selectedItem.status_id +';

我试过这个,但似乎没有用。

SELECT * 
  FROM tbl_person, tbl_settings 
 WHERE tbl_person.status_id = '+ status_dg.selectedItem.status_id +' 
    OR tbl_settings.status_id = '+ status_dg.selectedItem.status_id +';

这里有关于我正在尝试做什么的更多信息。

在两个表(tbl_person,tbl_settings)中,status_id是外键。在我的应用程序中,用户可以创建和删除状态。因此,我正在尝试编写的此查询是针对何时删除状态。在删除状态之前,我需要检查tbl_person和tbl_settings,以查看是否存在要删除的状态。如果其中一个表与要删除的状态匹配,我需要提升用户。

希望这有帮助。

4 个答案:

答案 0 :(得分:1)

不知道你需要什么联盟?

SELECT * 
  FROM tbl_person 
 WHERE tbl_person.status_id = '+ status_dg.selectedItem.status_id +'
union
SELECT * 
  FROM tbl_status 
 WHERE tbl_status.status_id = '+ status_dg.selectedItem.status_id +'

1.您应该避免使用“*”来选择所有记录。您应该指定要检索的列集 这一行:WHERE tbl_person.status_id = '+ status_dg.selectedItem.status_id +'看起来你做的事情完全错了。您应该避免在SQL中放置业务逻辑

是的,提供更多信息

答案 1 :(得分:1)

我对你的问题有些困惑,因为你首先使用了tbl_person和tbl_status,然后你尝试通过加入tbl_person和tbl_settings进行测试。
你想加入哪两个表?
如果你想加入tbl_person和tbl_settings,那怎么样呢。

SELECT *  
FROM tbl_person JOIN tbl_setting  
ON tbl_person.status_id = tbl_settings.status_id  
WHERE tbl_person.status_id = '+status_dg.selectedItem.status_id+'  

答案 2 :(得分:0)

如果没有关于表架构的更多信息,请尝试:

SELECT * 
  FROM tbl_person, tbl_settings 
 WHERE tbl_person.status_id = tbl_settings.status_id 
       AND tbl_person.status_id = '+status_dg.selectedItem.status_id+'

这将加入tbl_person上的2个表tbl_statusstatus_id,并仅检索status_id = '+status_dg.selectedItem.status_id+'的行。

答案 3 :(得分:0)

要加入表格,您需要定义加入字段,在您的情况下似乎是status_id字段。

这可能无法正常运行,但是如果你查看最后一行,你需要在查询中使用它:

SELECT * 
FROM tbl_person, tbl_settings 
WHERE 
  ( tbl_person.status_id='+status_dg.selectedItem.status_id+' 
  OR tbl_settings.status_id='+status_dg.selectedItem.status_id+' )
  AND tbl_person.status_id = tbl_settings.status_id;