Получить основной адрес электронной почты пользователя рекомендации mysql php

#mysql

#mysql

Вопрос:

У меня есть таблица пользователей и таблица контактной информации, чтобы у каждого пользователя могло быть несколько телефонных номеров и несколько адресов электронной почты. Есть ли стандартный способ установить и получить их основную контактную информацию?

таблица «люди»

 ID | name
1  | John
2  | Joan
 

таблица «human_contact»

 ID | contact_type | contact_info | user_id
1  | email        | john@a.com   | 1
2  | email        | johnny@b.net | 1
 

таблица «билеты»

 ID | human_id | event_date
1  | 1        | 2017-08-01
 

если Джон обычно использует johnny@b.net , как мне пометить эту строку как его любимую и получить ее для большинства запросов?

 SELECT *
FROM tickets
LEFT JOIN humans
ON tickets.human_id=humans.ID
LEFT JOIN human_contact
ON human_contact.human_id=humans.ID
WHERE tickets.ID='112'
 

Комментарии:

1. Что находится в таблице tickets?

2. @kbball, я отредактировал выше и добавил таблицу «билеты» 🙂 спасибо

3. Итак, как мы должны выбрать, какой contact_info сделать избранным?

4. @kbball это часть того, что я спрашиваю

Ответ №1:

Вы можете использовать дополнительный coloumn с именем fav, который будет иметь логические значения. Это может помочь вам сначала определить, есть ли у него какие-либо избранные, используя проверку, где fav==true, а затем продолжить с этим contact_info , или, если у пользователя нет избранных, перейдите к вашему обычному запросу.

Это,

 if( query( fav==1 for atleast 1 tuple )){
     return tuple with fav==1;
else{
     query ( usual query to get contact_info );
     return query_resu<
}
 

для более легкого понимания.Надеюсь, это поможет.

Комментарии:

1. Извините, не могли бы вы поместить это в полную форму запроса? Я не понимаю кортеж, и я никогда не использовал if в запросе