Есть таблица stuff_id с полями id и name.
Есть таблица stuff_phone с полями id, phone, preference.
У одного сотрудника может быть несколько телефонов. У одного из его телефонов может быть предпочтение, в таком случае для этого телефона в поле preference стоит какая-то метка, скажем, 'p'.
Нужен запрос, который выводит информацию в виде "имя - номер" для всех сотрудников, причём для каждого сотрудника нужно вывести только один номер, и если у него есть номер с предпочтением, то именно этот, в противном случае любой его.
Как написать такой запрос?
UPD:
Для связи таблиц используется поле id. Можно считать поле preference битовым - не суть. Хотелось бы какое-то стандартное ANSI решение, которое работало бы везде, а так всё равно на какой реализации. Главное - суть вопроса, а не нюансы. Как сделать такое объединение таблиц, чтобы имени ставился в соответствие один номер из множества?
stuff_idдля связи номера с человеком, иначе как вы поймете который номер к чему относится? полеpreferenceявляется флагом, поэтому сделайте его в соответствии с диалектом БД в битовое или целочисленное поле, чтобы значения были 0 или 1. А потом почитайте про подзапросы. – teran Jan 17 '17 at 08:52mysql,sql server,oracle,ms accessи т.д. в тэгах вопроса – teran Jan 17 '17 at 08:53