Я мог бы использовать некоторые советы экспертов с запросом MYSQL, который я пытаюсь собрать.MYSQL 4 Table Query
Что я хотел бы сделать:
Я пытаюсь создать страницу, которая позволит пользователям осуществлять расширенный поиск по нескольким таблицам.
В 4 таблицы:
members, profiles, skills, genre
Members:
*********************************
id | member_id | login | zipcode
*********************************
Profiles:
*********************************************************************
id | member_id | exp | commitment | practice | gigs | availability
*********************************************************************
Skills:
************************************************************************
id | member_id | lead_vocals | background_vocals | guitar | bass| drums
************************************************************************
Genre:
********************************************************************************
id | member_id | alternative | classic_rock | modern_rock | blues | heavy_metal
********************************************************************************
Skills and Genre represent check box values checked or not (1 or 0)
Форма поиска будет ряд флажков и выпадающие, которые позволили бы пользователю определить конкретные пункты, которые они хотят искать.
Что мне нужна помощь с:
мне нужна помощь придумывают лучший способ поставить этот вопрос вместе. Я читал на Joins, Unions, Sub Queries и Derived таблицах. Я могу сделать некоторые основные вопросы и получить часть данных, например:
SELECT members.member_id FROM members LEFT JOIN skills ON members.member_id = skills.member_id WHERE skills.leadvocals = 1
Однако я просто не могу показаться, чтобы обернуть мою голову вокруг положить все это вместе.
An example of the search criteria would look something like this:
A user fills out the form and wants to search for all members with (members table) zipcode = 11111 OR zipcode = 22222 (profiles table) commitment = ANY, practice = ANY, gigs = 1, availability = ANY (skills table) lead_vocals = 1 and lead_guitar = 1 (genre table) alternative = 1, modern_rock = 1, heavy_metal = 1
Примечание. У меня уже есть логика для вычисления расстояния по zipcode и возврата списка почтовых индексов в диапазоне.
В конце дня запрос просто должен вернуть список результатов с помощью member_id и войти в таблицу участников, соответствующую критериям.
Я не ищу кого-то, кто просто дал бы ответ (хотя я бы не прочь ответить :)) Я узнаю лучше, пытаясь разобраться в этом самостоятельно, но мне нужна помощь.
Заранее спасибо.
Спасибо за подробное объяснение и быстрый ответ. Это отлично работает. – JimmyF