Проблема с Oracle SQL, где заявление - PullRequest
0 голосов
/ 09 мая 2018

Привет всем, я новичок в SQL и столкнулся со следующей проблемой при выполнении простой команды выбора. Ниже приведены коды:

SQL:

select cheffname
from speciality
where speciality = 'Japanese Cuisine';

Выход:

Daniel
Pamela
Sarah

SQL:

select cheffname
from speciality
where speciality = 'Chinese Cuisine';

Выход:

Daniel
Jerry

SQL

select cheffname
from speciality
where speciality = 'Chinese Cuisine' and speciality = 'Japanese Cuisine';

Выход:

no rows selected 

Как вы можете видеть, я ожидаю, что третий SQL-запрос вернет Daniel, но это не так. Что я делаю не так?

Ответы [ 4 ]

0 голосов
/ 09 мая 2018

вы получили 'no selected selected', потому что этот запрос

select cheffname from speciality where speciality = 'Chinese Cuisine' and speciality = 'Japanese Cuisine';

возвращает строки, когда оба условия в условии where являются истинными, в вашем случае это невозможно, потому что вы написали 2 условия для одной и той же специальности столбца.Я надеюсь, что вы понимаете это, и вы можете получить желаемый результат несколькими способами, один из них,

select cheffname from speciality where speciality = 'Chinese Cuisine'
union
select cheffname from speciality where speciality = 'Japanese Cuisine'
0 голосов
/ 09 мая 2018

Я верю, что вы хотите:

select cheffname
from speciality
where speciality in ('Chinese Cuisine', 'Japanese Cuisine')
group by cheffname
having count(*) = 2;
0 голосов
/ 09 мая 2018

INTERSECT является одним из вариантов.

SELECT cheffname
FROM speciality
WHERE speciality = 'Chinese Cuisine'
 INTERSECT
SELECT cheffname
FROM speciality
WHERE speciality = 'Japanese Cuisine'
0 голосов
/ 09 мая 2018

Попробуйте это:

SELECT cheffname
FROM speciality
WHERE cheffname IN (
        SELECT cheffname
        FROM speciality
        WHERE speciality = 'Japanese Cuisine'
        )
    AND cheffname IN (
        SELECT cheffname
        FROM speciality
        WHERE speciality = 'Chinese Cuisine'
        )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...