从两个不同的表中选择所有数据

时间:2014-06-22 18:28:12

标签: mysql sql select

我想显示禁止的用户和IP,但它们位于两个不同的表中。 我有网站用户的表,该表包含列'禁止'和另一个禁止IP的表。所以我想要这样的东西:

  

选择

     

ipban.ip,ipban.admin,ipban.reason

     

     

users.username WHERE ban = 1

(这个查询不正确,我写的只是为了解释我的问题)

然后在表格中显示。 那么,怎么做呢?

3 个答案:

答案 0 :(得分:3)

使用UNION,如下所示:

(SELECT NULL, ipban.ip, ipban.admin, ipban.reason FROM ipban)
UNION ALL
(SELECT users.username,NULL,NULL,NULL FROM users WHERE ban=1)

我假设这两个表没有要加入的公共字段。

答案 1 :(得分:2)

SELECT ipban.ip, ipban.admin, ipban.reason, users.username FROM ip, users WHERE users.somekey = ipban.somekey and users.ban = 1

假设banusers表中。

您也可以使用INNER JOIN连接表格:

SELECT ipban.ip, ipban.admin, ipban.reason, users.username FROM users INNER JOIN ip ON users.somekey = ip.somekey WHERE users.ban = 1

要从两个表中获取所有列,请使用

SELECT * FROM users INNER JOIN ip ON users.somekey = ip.somekey WHERE users.ban = 1

答案 2 :(得分:0)

选择 ipban.ip,ipban.admin,ipban.reason,users.username 从 ipban Inner加入用户 在公共属性上(这里你应该提供一个列在两个表中) ban = 1;