在php mysql中查找具有相似名称的多个表

时间:2013-03-19 08:51:29

标签: php mysql join

我正在尝试使用Join从两个mysql表中选择数据但是我想从几个具有相似名称的表中选择,例如profile_starter,profile_advanced,profile_premium等。我的问题是如何从其他表中选择无需加入更多表格?我试过*但它不起作用:

    $inbox_sql = "
SELECT sender, recipient, time, message, viewed, name, avatar 
FROM messages 
LEFT JOIN profile_* ON profile_*.username = messages.sender
";

如果有解决办法,请你告诉我吗?谢谢

1 个答案:

答案 0 :(得分:0)

答案是你做不到的。使用JOIN时,表名必须全部存在,不能使用通配符。

如果表是相同的,那么如何查看UNION并在子查询中创建这些表的转储,而不是将每个表连接到另一个查询? - 也许值得看一个视图,但是这些不会提高性能,它们都需要根据您的数据和需求进行测试。

听起来你这里只有3个表,如果你简化了这个例子,你可以使用通配符查询INFORMATION_SCHEMA TABLES以列出所有匹配的表,然后使用这个输出构建你的查询,其中包含完整的表名。