Я работаю над проектом клиента и нажимаю на несколько meta_key, поиск метазначения.Поиск по нескольким мета-ключам и метазначениям
Моя структура БД подобна той
clinics clinics_meta ======= ============= id name id fk_clinic_id meta_key meta_value 1 dental 1 1 city london 2 heart 2 1 country england 3 2 city manchester 4 2 country london
Я хочу, чтобы получить клинику с city = london
и country = england
Я попытался как этот
SELECT distinct(clinics.id) FROM clinics, clinic_meta
WHERE clinics.id = clinic_meta.fkClinicId
AND (clinic_meta.metaKey = 'clinicCountry' AND clinic_meta.metaValue like '%england%')
AND (clinic_meta.metaKey = 'clinicCity' AND clinic_meta.metaValue like '%london%')
Пожалуйста, не conside синтаксической ошибки, но логики.
этот код не возвращает clinic name/id
,
, но вместо того, чтобы использовать два фильтра город, страна
Если я использую только один фильтр, что делает имя возвращения клиники.
Любая помощь будет оценена по достоинству.
Спасибо.
Спасибо Long Dog, Должен ли я увеличить число на присоединяется если число значений metakey фильтров увеличивается? –
Нет проблем, похоже, да ... Я бы добавил индекс в clinics_meta, если его нет: alter table clinic_meta add key (meta_key, meta_value); Я предполагаю, что уже есть ключи на clinics_meta.clinic_id и clinic.id? – RJJ
PLS принять ответ, если он работает :) – RJJ