Добавьте дополнительное условие:
SELECT a.x, a.z, b.y
FROM tablea a
INNER JOIN tableb b on a.x = b.y AND a.z <> 'special value'
Обратите внимание, что это также полностью удалит эти строки из результата. Если вы все еще хотите получить эти строки из таблицы, вам понадобится внешнее соединение:
SELECT a.x, a.z, b.y
FROM tablea a
LEFT JOIN tableb b on a.x = b.y AND a.z <> 'special value'
, которое вернет все строк из таблицы и только совпадающие строки из таблицы для строк в таблице, где z
не имеет этого специального значения
Или, может быть, вы ищете UNION?
SELECT a.x, a.z, b.y
FROM tablea a
JOIN tableb b on a.x = b.y
WHERE a.z <> 'special value'
UNION ALL
SELECT a.x, a.z, null
FROM tablea a
WHERE a.z = 'special value'