MySQL - 选择表中与另一个表相关的特定行

时间:2021-03-16 09:56:17

标签: mysql

我有两个表如下

表 1

Userid            Name        Gender         Country
===================================================
u001              Name 1      Female           IN
u002              Name 2      Male             US
u003              Name 3      Male             IN
u004              Name 4      Female           UK
u005              Name 5      Female           US

表 2

Userid               UserRole                    Status
=======================================================
u001                   r001                         1
u002                   r002                         1
u003                   r002                         1
u004                   r002                         1
u005                   r003                         1

我想选择表 1 中的所有行(使用 join 是可选的),它们是 Females 并且具有 userRole 'r002'

我找不到合适的语法来做到这一点。

2 个答案:

答案 0 :(得分:1)

SELECT * FROM `table_1` WHERE `Gender` = 'Female' and `Userid` in (SELECT `Userid` FROM `table_2` where `UserRole` = 'r002')

答案 1 :(得分:1)

SELECT t1.*
FROM `table_1` t1
INNER JOIN `table_2` t2 ON (t1.Userid = t2.Userid AND t2.UserRole = 'r002')
WHERE 
    t1.Gender = 'Female'