2011-08-12 63 views
0

如何将这两个查询结合在一起。加入查询?

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,看看是否存在被删除的状态。如果其中一个表与要删除的状态匹配,我需要提升用户。

希望这会有所帮助。

+5

向我们展示这两个表的定义 – Bohemian

+0

或者至少需要后两个原始查询的样例输出以及组合查询的预期输出。 –

回答

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+' 

这将加入2个表,tbl_persontbl_status,在status_id,并在status_id = '+status_dg.selectedItem.status_id+'只检索行。

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; 
+0

我建议使用ANSI标准“连接”语法来代替。但我甚至不确定“加入”甚至不需要 - 我们没有足够的信息。也许OP想要一个“联盟”(如下面的user194076所示)。 – paulsm4

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.您应该避免使用“*”来选择所有记录。您应该指定要检索的一组列。
2.此行:WHERE tbl_person.status_id = '+ status_dg.selectedItem.status_id +'看起来像是在做一些完全错误的事情。你应该避免把业务逻辑在SQL

,是的,提供更多信息

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+'