我正在尝试使用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
";
如果有解决办法,请你告诉我吗?谢谢
答案 0 :(得分:0)
答案是你做不到的。使用JOIN时,表名必须全部存在,不能使用通配符。
如果表是相同的,那么如何查看UNION并在子查询中创建这些表的转储,而不是将每个表连接到另一个查询? - 也许值得看一个视图,但是这些不会提高性能,它们都需要根据您的数据和需求进行测试。
听起来你这里只有3个表,如果你简化了这个例子,你可以使用通配符查询INFORMATION_SCHEMA TABLES以列出所有匹配的表,然后使用这个输出构建你的查询,其中包含完整的表名。