Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
选择值等于MySQL中列值的行_Mysql_Sql_Select - Fatal编程技术网

选择值等于MySQL中列值的行

选择值等于MySQL中列值的行,mysql,sql,select,Mysql,Sql,Select,我有一个表表1,它有5列,如下所示 | ID | Name | V1 | V2 | V3 | | 1 | A | 103 | 507 | 603 | | 2 | B | 514 | 415 | 117 | | 3 | C | 741 | 895 | 854 | | Values | Rooms | | 103 | ABC

我有一个表表1,它有5列,如下所示

|   ID   |   Name  |   V1   |   V2   |   V3   |
|   1    |    A    |   103  |   507  |   603  |
|   2    |    B    |   514  |   415  |   117  |
|   3    |    C    |   741  |   895  |   854  |
|  Values |  Rooms  |
|   103   |   ABC   |
|   507   |   DEF   |
|   603   |   GHI   |
|   514   |   JKL   |
|   415   |   MNO   |
|   117   |   PQR   |
还有另一个表表2,其值如下

|   ID   |   Name  |   V1   |   V2   |   V3   |
|   1    |    A    |   103  |   507  |   603  |
|   2    |    B    |   514  |   415  |   117  |
|   3    |    C    |   741  |   895  |   854  |
|  Values |  Rooms  |
|   103   |   ABC   |
|   507   |   DEF   |
|   603   |   GHI   |
|   514   |   JKL   |
|   415   |   MNO   |
|   117   |   PQR   |

我想从表2中选择房间,其中的值等于表1中多行的V1、V2和V3。简言之,我想选择V1、V2和V3列的值,如下所示

103, 507, 603, 514, 415, 117, 741, 895, 854

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

如果我理解正确,您希望:

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
你可以试试这个:

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]
试试这个:

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]

您的示例数据是如何获得该输出的?为什么103与A、B和C相连?请提供正确的示例,因为这样更容易理解。请以表格格式共享您想要的输出。您想选择房间或V1、V2和V3列?“我想从表2中选择房间”“我想选择V1、V2和V3列值”您想要什么?请再次阅读问题:“我想选择V1、V2和V3列值”@威震天请再次阅读问题:“我想从表2中选择值等于表1中多行的V1、V2和V3的房间"即使如此,在作者未澄清问题前,我们仍无法提供任何答案。你同意我的观点吗?@Aleksa Milosevic:你的SQL语法有错误。也许你不能。我完全理解他的意思meant@MegaTron,您将得到V1、V2和V3列与[t2.values]完全匹配的值。我只显示t2。[Values]列,该列将间接显示V1、V2和V3列的匹配值。您的联接将更改记录的顺序并按升序对结果排序,而我不想更改记录的顺序。