これが私のテーブル構造です:
persons
-------
id
first_name
last_name
phone_numbers
-------------
id
person_id
number
type
これが私のクエリです:
SELECT `persons`.`id`, `first_name`, `last_name`, `number`
FROM `persons`
LEFT JOIN `phone_numbers` ON `persons`.`id` = `phone_numbers`.`person_id`
ORDER BY `last_name` ASC
これにより、電話番号を持っているかどうかに関係なく、すべての人が返されます。良い。
問題は、人が複数の電話番号を持っている場合に始まります。同じ人に対して複数の行を取得します。
1 人あたり 1 行しか取得できないようにするにはどうすればよいですか (最初の電話番号がある場合、またはまったくない場合)。
更新:type
列があるという事実を含めるのを忘れていました。その値は、次の 3 つの選択肢のいずれかになります。
- 細胞
- 仕事
- 家
最初はその順序で決定されます。