选择值等于MySQL中的列值的行

时间:2015-10-22 07:28:36

标签: mysql sql select

我有一张表表1 ,其中有5列像这样

...                           
cmd.Parameters.AddWithValue("@Shift", Shift)
cmd.Parameters.AddWithValue("@Clocka", Clocka)
'            Parameter Name: ^         ^ your variable name
...

和另一个表表2 ,其中包含类似

的值
|   ID   |   Name  |   V1   |   V2   |   V3   |
|   1    |    A    |   103  |   507  |   603  |
|   2    |    B    |   514  |   415  |   117  |
|   3    |    C    |   741  |   895  |   854  |

我想从表2中选择房间,其中值等于表1中多行的V1,V2和V3。简而言之,我想选择V1,V2和V3列这样的值

|  Values |  Rooms  |
|   103   |   ABC   |
|   507   |   DEF   |
|   603   |   GHI   |
|   514   |   JKL   |
|   415   |   MNO   |
|   117   |   PQR   |

所以我可以在表2的select语句中运行where子句。

2 个答案:

答案 0 :(得分:3)

你可以尝试这个:

SELECT t2.[Values] FROM Table2 t2
INNER JOIN Table1 t1 ON t1.V1 = t2.[Values]
                    OR t1.V2 = t2.[Values]
                    OR t1.V3 = t2.[Values]

试试这个:

SELECT t1.v1,t1.v2,t1.v3 FROM Table2 t2
INNER JOIN Table1 t1 ON t1.V1 = t2.[Values]
                    OR t1.V2 = t2.[Values]
                    OR t1.V3 = t2.[Values]

答案 1 :(得分:0)

如果我理解正确,你想要这个:

select t2.Rooms from Table2 t2
where exists
select * from Table1 t1 where t1.V1 = t2.Values
                        or t1.V2 = t2.Values
                        or t1.V3 = t2.Values