使用查询来确定表名

时间:2014-07-02 07:44:05

标签: mysql

一个非常严重的问题,对不起!

所以我有一个表给了我一个 listid数字,它与表名的结尾有关。我怎样才能加入那张桌子?

我的查询为我rellistidrelsubscriberid

relsubscriberid位于名为oempro_subscribers_XXX的表格中,其中XXXrellistid

如何在该表中搜索subscriberid

这不是我的数据库,这是一个名为Oempro的基于网络的营销系统的数据库,我无法在任何其他表格中找到直接链接。

架构:

LinkTrackID int(11) NO  PRI     auto_increment
RelOwnerUserID  int(11) NO  MUL     
RelCampaignID   int(11) NO  MUL     
RelEmailID  int(11) NO  MUL     
RelAutoResponderID  int(11) NO  MUL     
RelListID   int(11) NO  MUL     
RelSubscriberID int(11) NO          
LinkURL text    NO          
LinkTitle   varchar(250)    NO          
ClickDate   datetime    NO          

3 个答案:

答案 0 :(得分:0)

AFAIK,你不能在SQL中做到这一点。因此,您必须执行第一个查询,然后使用第一个查询的结果生成第二个查询(具体取决于所使用的语言)。

但请注意,恕我直言,这是一个非常糟糕的架构。您应该有一个表oempro_subscribers,其中包含一个附加列,以包含XXX

答案 1 :(得分:0)

也许你可以使用预备语句,如下所述:How To have Dynamic SQL in MySQL Stored Procedure

...但我认为你需要修复你的架构。

答案 2 :(得分:0)

听起来您可能需要使用某种动态SQL。

我认为你不能一步到位。

1)您可以使用第一个查询的结果来获取表名。 2)您可以使用该结果针对第二个表“动态”生成查询。

查看文档。

http://dev.mysql.com/doc/refman/5.0/en/sql-syntax-prepared-statements.html