Со структурой и данными ниже я хочу вернуть цвет из таблицы A, если этот элемент отсутствует в таблице B. Я не получаю хорошего результата, даже если таблица B не содержит этот элемент. Кажется, что проблема заключается во втором операторе выбора, поскольку он всегда возвращает 1, когда выполняется сам по себе. Я думал, что «выбрать 1» возвращает количество того, что он находит. если это так, как он всегда может вернуть 1? Разве это не хороший способ сделать это?
CREATE TABLE A (
id INT NOT NULL AUTO_INCREMENT,
pid INT NOT NULL,
color_name VARCHAR (24) NOT NULL,
)
CREATE TABLE B (
id INT NOT NULL,
pid INT NOT NULL,
)
A {1,2,red}
B {2,2}
select color_name from A where (select 1 from B where B.id = '1' and B.pid = '2')