如何从MySQL单个查询中的多个表中检索数据?

时间:2013-06-23 04:24:06

标签: mysql

我有一个数据库,表格如下:

表名:userDB
列名:user_id(客户ID),reseller_id(已与客户建立联系的经销商)

表名:serverDB
列名:server_id(服务器ID),status(向上或向下状态 - 如果1向下,如果0向上)

表名:usageDB_january
列名:user_id(客户ID),server_id(服务器ID)
...
表名:usageDB_december
列名:user_id(CUSTOMER'S ID),server_id(服务器ID)
注意:每个月有usageDB_januaryusageDB_december的12个表格。

在PHP页面中,我列出了server_id为DOWN(状态1)

__ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __
|序列号|下行服务器的ID |
| 1 | 28839 |
| 2 | 20283 |
_ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ _

当我点击DOWN SERVERS的ID时,我想在该SERVER ID下显示RESELLERS列表。

我不了解如何编写MySQL查询。

你能帮助我吗?请?

我无法更改数据库表结构。我不理解这个问题。

SELECT reseller_id
来自userDB
在哪里user_id =(
                选择user_id
                来自usageDB_january
                在哪里server_id喜欢'17090'                 UNION
                选择user_id
                来自usageDB_february
                在哪里server_id喜欢'17090'             );

错误:#1242 - 子查询返回超过1行

1 个答案:

答案 0 :(得分:0)

您可以将此用于查询:

SELECT user_id, server_id, reseller_id
FROM usageDB_january
JOIN userDB ON usageDB_january.user_id=userDB.user_id
UNION
SELECT user_id, server_id, reseller_id
FROM usageDB_february
JOIN userDB ON usageDB_february.user_id=userDB.user_id
UNION
// ... continue with all the other months