2013-03-19 127 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