0

我正在尝试使用 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
";

请问您能否让我知道是否有解决方案?谢谢

4

1 回答 1

0

答案是你不能。使用 JOIN 时,表名必须完整,不能使用通配符。

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

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

于 2013-03-19T08:58:31.417 回答