2013-03-19 131 views
0

我想从两个mysql表中选择数据使用连接,但我想从类似名称,如profile_starter,profile_advanced,profile_premium等几个表中选择。我的问题是我如何从其他表中选择而不必连接更多的表?我试过*但它不起作用:查找在php中使用类似名称的多个表mysql

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

请你能让我知道是否有解决方案吗?谢谢

+0

单独命名所有表格。 – hjpotter92 2013-03-19 08:52:50

+0

如果“启动器”,“高级”和“高级”状态是表格之间唯一不同的地方,那么为什么不只有一个表格和“状态”栏来区分呢? – 2013-03-19 08:54:17

+0

每个表格中的信息目前有所不同,但我可以查看使其相同的方法,然后使用状态栏来区分,谢谢 – user2184018 2013-03-19 09:05:18

回答

0

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

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

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

+1

感谢您提供的信息和可能的解决方案 – user2184018 2013-03-19 09:06:29