跨2个表的mysql请求

时间:2014-07-01 15:11:49

标签: mysql

我有一个包含两个表的数据库:

table1:" backup1"

table2:" backup2"

两个表都有类似

的结构
id, backupid, userid, backup, info

我想做一个简单的MYSQL请求来获取一组条目 它向我显示useridtable1table2 中的ALSO,以查看用户在两个表中执行备份的内容

我知道我可以打开table1查找userid并执行另一个MYSQL以查看它是否也是 在table2,但我希望有一个更简单的方法可以通过一个请求来完成。

3 个答案:

答案 0 :(得分:3)

SELECT userid
FROM backup1
INNER JOIN backup2
USING(userid)

userid字段上的内部联接将导致查询仅返回在两个表中找到的行。

答案 1 :(得分:1)

这不是通过' 2数据库',这是通过' 2表'。只需使用连接。

SELECT a.userid
from backup1 a
inner join backup2 b
on a.userid=b.userid

这将为您提供backup1中也存在于backup2

中的所有用户ID

答案 2 :(得分:0)

如果您只需要知道用户是否在两个表中都进行了备份,您只需使用简单的select语句即可。一个简单的例子,使用临时变量@uId来保存要检查的用户的Id,以及两个临时变量来保存每个表的(布尔)答案

set @uId = 1; -- The user Id
select
    @b_t1 := (select count(*) from table1 where userId=@uId) > 0 as hasBackupOnTable1,
    @b_t2 := (select count(*) from table2 where userId=@uId) > 0 as hasBackupOnTable2,
    @b_t1 and @b_t2 as hasBackupOnBothTables;