Я работаю в системе, и мне нужен запрос, чтобы вернуть предпочтительно номер мобильного телефона клиента, но если он не вставил его, верните свой домашний номер.
Вот как выглядят таблицы (они не могут быть изменены):
CREATE TABLE Clients
(
id_client int PRIMARY KEY, /* client's id */
nm_client varchar(200), /* client's name */
zipcode int
);
CREATE TABLE PhoneType
(
cd_phoneType int PRIMARY KEY, /* 1 for landline 2 for cellphone */
nm_phoneType varchar(60) /* "Landline" if the above is 1 or "Cellphone" if 2*/
);
CREATE TABLE Phones
(
cd_phone int PRIMARY KEY,
cd_phoneType int, /* 1 for landline 2 for cellphone */
nu_phone VARCHAR(20), /* phone number */
id_client INT, /* client's id */
FOREIGN KEY (cd_phoneType) REFERENCES PhoneType(cd_phoneType)
FOREIGN KEY (id_client) REFERENCES Clients(id_client)
);
В основном, если cd_phoneType = 2 для клиента, он должен вернуть номер его мобильного телефона, в противном случае вернуть его другой номер.Как мне сделать это в синтаксисе SQL?
Вот исходный код, который я сделал:
SELECT nm_client, nm_phoneType, nu_phone
FROM Clients
JOIN Phones ON Clients.id_client = Phones.id_client
JOIN PhoneType ON PhoneType.cd_phoneType = Phones.cd_phoneType;