У меня возникли проблемы с попыткой выяснить, как выбрать несколько записей с несколькими значениями. Позвольте мне попытаться сломать его.Выберите несколько разных значений из таблицы и оцените их для соответствия в таблице
У меня есть две таблицы.
Таблица 1: Болезни
Таблица 2: Симптомы
То, что я хочу сделать, это когда пользователь вводит симптом, он будет проходить через стол заболеваний и найдите соответствующий симптом, связанный с ним, и затем он вернет заболевание, которое имеет данный признак.
Это запрос SQL у меня есть до сих пор:
select a.diseases_id, a.disease_name
from diseases a, symtoms b
where a.diseases_id = b.diseases_id
and b.symtom_description like '%Cough%' AND b.symtom_description like '%Sore throat%';
Теперь проблема в том, что это SQL-запрос ничего не возвращает, но если я удалить И заявление возвращает все болезни, которые содержат «Кашель» в их симптомы, но это не то, что я хочу. Я должен быть в состоянии выбрать кучу симптомов, и если у болезней есть все симптомы, и они совпадают, он вернет болезнь. По запросу, который я опубликовал, он должен вернуться «Гастроэзофагеальный рефлюкс», поскольку это заболевания, которые содержат только кашель и Болезненное горло.
Может ли кто-нибудь дать мне какие-либо указания, как сделать эту работу?
Спасибо!
Вы живой заставки! Работает как шарм. Не возражаете ли вы объяснить после группы и как это заставило ее работать? И как работает счет? Какова цель = 2? –
HAVING - это как предложение WHERE для агрегации, поэтому оно применяется ** после ** агрегации (WHERE before). Я использовал дополнительный столбец _b.symtom_description_, чтобы агрегирование дало мне для каждого символа одну строку. С _count (a.diseases_id) = 2_ Я прошу, чтобы _a.diseases_id_ должен существовать 2 раза, так как вы указали 2 симтома в предложении WHERE. Если у вас есть 3 или что-то другое, чем 2, вам необходимо соответствующим образом адаптировать это ограничение. – faulix90