MYSQL выберите условия заявления - PullRequest
1 голос
/ 08 июля 2010

запрос:

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 |
+--------------------------------------+----------+-----------+--------+

описать пользователя;

+-----------+--------------+------+-----+---------+-------+
| 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    |       |
+-----------+--------------+------+-----+---------+-------+

mysql> описать taxiQuery;

+--------------+--------------+------+-----+---------+----------------+
| 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    |                |
+--------------+--------------+------+-----+---------+----------------+

Что я хочу, чтобы отобразить информацию пользователя, еслиони существуют в (seat1 / seat2 / seat3 / seat4) в TaxiQuery.Но я могу вывести только один результат, когда они предполагаются равными трем.

Могу ли я узнать, как я могу изменить оператор mysql для отображения информации о пользователе, когда (seat1-4 является внешним ключом для deviceIDТаблица пользователя), когда seat1, seat2, seat3, seat4 содержит ID устройства пользователей?

1 Ответ

0 голосов
/ 08 июля 2010

Насколько я могу судить, это должно работать, если вы не делаете ВНУТРЕННЕЕ объединение. Я думаю, что ключевое слово INNER говорит, что mySQL должен включать каждый источник максимум один раз, поэтому он будет использовать только одну копию TaxiQuery, когда вам действительно нужно до четырех (по одной на рабочее место).

...