MySQL Forums
Forum List  »  Russian

Условие отбора по присоединенному полю
Posted by: Виктор Аникеев
Date: June 02, 2016 10:44PM

Здравствуйте.

Имеется две таблицы:

CREATE TABLE `Перечисление_Булево` (
`Код` INT(1) UNSIGNED NOT NULL COMMENT 'Числовое представление',
`Наименование` VARCHAR(3) NOT NULL COMMENT 'Булево значение',
PRIMARY KEY (`Код`),
UNIQUE INDEX `Наименование` (`Наименование`)
);

Содержит два значения:
0 - Нет
1 - Да


CREATE TABLE `Справочник_Валюты` (
`Код` INT(3) UNSIGNED NOT NULL COMMENT 'Код валюты',
`Наименование` VARCHAR(25) NOT NULL COMMENT 'Наименование валюты',
`Обозначение` VARCHAR(10) NOT NULL COMMENT 'Обозначение валюты',
`Загрузка` INT(1) UNSIGNED NOT NULL DEFAULT '0' COMMENT 'Автоматическая загрузка курсов при старте системы',
PRIMARY KEY (`Код`),
INDEX `FK_Справочник_Валюты_Перечисление_Булево` (`Загрузка`),
CONSTRAINT `FK_Справочник_Валюты_Перечисление_Булево` FOREIGN KEY (`Загрузка`) REFERENCES `Перечисление_Булево` (`Код`)
);


Подскажите, пожалуйста, почему в запросе с соединением:

SELECT Справочник_Валюты.Код AS Код,
Справочник_Валюты.Наименование AS Наименование,
Перечисление_Булево.Наименование AS Загрузка
FROM Справочник_Валюты
LEFT JOIN Перечисление_Булево ON Перечисление_Булево.Код = Справочник_Валюты.Загрузка
WHERE Загрузка = 'Да';

Не работает WHERE, сообщая, что тип столбца Загрузка - число?
Можно ли как-то исправить запрос так, чтобы в условии WHERE осталось текстовое значение 'Да', а столбец `Загрузка` был строкового типа (такого же, как столбец Наименование таблицы Перечисление_Булево?

Options: ReplyQuote


Subject
Views
Written By
Posted
Условие отбора по присоединенному полю
1985
June 02, 2016 10:44PM


Sorry, you can't reply to this topic. It has been closed.

Content reproduced on this site is the property of the respective copyright holders. It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.