我正在尝试使用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
";如果有解决方案,请告诉我好吗?谢谢
发布于 2013-03-19 16:58:31
这个问题的答案是你不能。当使用JOIN时,表名必须是完整的,你不能使用通配符。
如果这些表是相同的,那么如何在子查询中查看UNION并创建这些表的转储,而不是将每个表连接到另一个查询?-可能也值得查看视图,但是这些并不能提高性能,它们都需要用您的数据和需求进行测试。
听起来您在这里只有3个表,如果您简化了这个示例,您可以使用通配符查询INFORMATION_SCHEMA表,以列出所有匹配表,然后使用此输出构建包含中的完整表名的查询。
https://stackoverflow.com/questions/15494954
复制相似问题