2017-07-13 10 views
0

私は2つのテーブル、ユーザーとリフトを持っています。私のUIで動的ドロップダウンで重複行を停止します

(PHPのWebページ)、私は(無関係な、他と同様に)2回のドロップダウンを持って、一つはドロップダウン[userlastname、userfirstname]であり、他方は、[送信先]で

問い合わせI午前使用してはこれです:私のすべての宛先のリストをも(正確に)ユーザーがユーザー名のリスト

[Harvey Fletcher] 
[Ronald McDonald] 
[Harvey Fletcher] 

とを与える

SELECT * FROM lifts l JOIN users u ON l.user_id=u.uid GROUP BY l.id; 

[Destination 1] 
[Destination 2] 
[Destination 3] 

ユーザー名リストからわかるように、[Harvey Fletcher]が2回出現しました。これをどうやって止めることができますか?以下の表の構造。

ユーザー:

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

情報: ハーヴェイフレッチャーは、それが2回出現理由である、2つの 'リフト' を持っていたら ハービー・フレッチャーは、ユーザーテーブルにのみです。 Ronald McDonaldには1つしかないので、1回しか表示されませんが、2番目のリフトを追加した場合は2回表示されます。

+1

使用DBへの2つの別々の呼び出し? –

答えて

0

グループの代わりにリフトのユーザーにあなたのクエリ:

SELECT * FROM lifts l JOIN users u ON l.user_id=u.uid GROUP BY u.uid; 
+0

これは、宛先の各ユーザーの最初のオプションのみを表示します。例:[Destination 1]、[Destination 3]。しかし、私は[目的地2]も存在する必要があります。 –

+0

そのために2つの異なるクエリが必要です –

+0

@HarveyFletcherどのようにすべての宛先がある可能性がありますが、個々のクエリでそれぞれのユーザを必要としませんか? –

関連する問題