Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.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 select语句条件_Sql_Mysql_Query Optimization - Fatal编程技术网

MYSQL select语句条件

MYSQL select语句条件,sql,mysql,query-optimization,Sql,Mysql,Query Optimization,查询: 描述用户 SELECT u.deviceID, u.userName, u.contactNo, u.rating FROM User u INNER JOIN TaxiQuery t ON u.deviceID = t.seat1 OR u.deviceID = t.seat2 OR u.deviceID = t.seat3 OR u.d

查询:

描述用户

SELECT u.deviceID, u.userName, u.contactNo, u.rating
  FROM User u
 INNER JOIN TaxiQuery t ON u.deviceID = t.seat1
                        OR u.deviceID = t.seat2
                        OR u.deviceID = t.seat3
                        OR u.deviceID = t.seat4
 WHERE t.queryID = 3;

+--------------------------------------+----------+-----------+--------+
| deviceID                             | userName | contactNo | rating |
+--------------------------------------+----------+-----------+--------+
| 00000000-0000-1000-8000-0016CB8B3C8E | uuuuuu   |     55555 |      5 |
+--------------------------------------+----------+-----------+--------+
mysql>描述查询

+-----------+--------------+------+-----+---------+-------+
| Field     | Type         | Null | Key | Default | Extra |
+-----------+--------------+------+-----+---------+-------+
| deviceID  | varchar(100) | NO   | PRI | NULL    |       |
| userName  | varchar(100) | YES  |     | NULL    |       |
| contactNo | int(11)      | YES  |     | NULL    |       |
| emailAddr | varchar(100) | YES  |     | NULL    |       |
| rating    | int(11)      | YES  |     | NULL    |       |
+-----------+--------------+------+-----+---------+-------+
我想要的是在TaxiQuery中显示用户信息(如果存在于seat1/seat2/seat3/seat4中)。但是当它们被假定为三个时,我只能输出一个结果


当seat1、seat2、seat3、seat4包含用户的设备ID时,当seat1-4是用户表的设备ID的外键时,我可以知道如何修改mysql语句来显示用户的信息吗?

据我所知,如果不进行内部联接,它应该可以工作。我认为internal关键字告诉mySQL,每个源最多只包含一次,因此当您实际需要每个座位最多四个源时,它将只使用一个TaxiQuery副本。

Related:如果您使用DISTINCT或定义GROUP BY子句,则内部联接将起作用。否则,您需要使用相关子查询。。。
+--------------+--------------+------+-----+---------+----------------+
| Field        | Type         | Null | Key | Default | Extra          |
+--------------+--------------+------+-----+---------+----------------+
| queryID      | int(11)      | NO   | PRI | NULL    | auto_increment |
| destination  | varchar(100) | YES  |     | NULL    |                |
| deptTime     | varchar(100) | YES  |     | NULL    |                |
| startingPt   | varchar(100) | YES  |     | NULL    |                |
| boardingPass | varchar(100) | YES  |     | NULL    |                |
| miscInfo     | varchar(100) | YES  |     | NULL    |                |
| seat1        | varchar(100) | YES  |     | NULL    |                |
| seat2        | varchar(100) | YES  |     | NULL    |                |
| seat3        | varchar(100) | YES  |     | NULL    |                |
| seat4        | varchar(100) | YES  |     | NULL    |                |
+--------------+--------------+------+-----+---------+----------------+