我有两张桌子,用户和电梯。
在我的UI(php网页)上,我有两个下拉(以及其他,不相关),一个下拉是[userlastname,userfirstname],另一个是[destination]
我正在使用的查询是:
SELECT * FROM lifts l JOIN users u ON l.user_id=u.uid GROUP BY l.id;
它为我提供了用户的用户名列表(正确)
[Harvey Fletcher]
[Ronald McDonald]
[Harvey Fletcher]
以及所有目的地的列表
[Destination 1]
[Destination 2]
[Destination 3]
但是从用户名列表中可以看出,[Harvey Fletcher]出现了两次。我怎么能阻止这种情况发生?表格结构如下。
用户:
+---------------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------------------+--------------+------+-----+---------+----------------+
| uid | int(10) | NO | PRI | NULL | auto_increment |
| title | varchar(10) | NO | | NULL | |
| firstname | varchar(100) | NO | | NULL | |
| lastname | varchar(100) | NO | | NULL | |
| email | varchar(500) | NO | | NULL | |
| password | varchar(500) | NO | | NULL | |
| reg_no | varchar(10) | YES | | NULL | |
| vehicle_make | varchar(50) | YES | | NULL | |
| vehicle_colour | varchar(25) | YES | | NULL | |
| licence_no | varchar(50) | YES | | NULL | |
| address_line1 | varchar(75) | NO | | NULL | |
| address_line2 | varchar(75) | NO | | NULL | |
| town_city | varchar(75) | NO | | NULL | |
| postcode | varchar(10) | NO | | NULL | |
| reputation_positive | int(10) | YES | | 0 | |
| reputation_negative | int(10) | YES | | 0 | |
| telephone_number | char(11) | NO | | NULL | |
+---------------------+--------------+------+-----+---------+----------------+
升降机:
+-----------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------------+--------------+------+-----+---------+----------------+
| id | int(10) | NO | PRI | NULL | auto_increment |
| user_id | int(10) | NO | | NULL | |
| lift_to | varchar(50) | NO | | NULL | |
| lift_from | varchar(50) | NO | | NULL | |
| quote_price | varchar(50) | NO | | NULL | |
| available_seats | int(2) | YES | | 1 | |
| depart_date | varchar(20) | NO | | NULL | |
| depart_time | varchar(10) | NO | | NULL | |
| pickup_location | varchar(100) | NO | | NULL | |
+-----------------+--------------+------+-----+---------+----------------+
的信息: Harvey Fletcher只在用户表中一次 Harvey Fletcher有两个“升降机”,这就是它出现两次的原因。 罗纳德麦当劳只有一个,所以只出现一次,但如果我加了第二次升降,就会显示2次。
答案 0 :(得分:0)
将查询分组给用户而不是升降机:
SELECT * FROM lifts l JOIN users u ON l.user_id=u.uid GROUP BY u.uid;