我可以使用一些專家建議與MYSQL查詢我試圖放在一起。MYSQL 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)
搜索表單將是一系列的複選框和下拉菜單,將允許用戶指定要搜索的具體項目。
我需要什麼幫助:
我需要幫助想出把這個查詢起來的最佳方式。我一直在閱讀關於聯接,聯盟,子查詢和派生表。我可以做一些基本的查詢,並得到例如部分數據:
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
注意我已經有邏輯來計算郵政編碼距離並返回範圍內的郵政編碼列表。
在一天結束時,查詢只需返回member_id結果列表並從符合條件的成員表登錄。
我不是在找人提供那個答案(儘管我不介意這個答案:))通過試圖找出自己的想法,我學得更好,但我需要一些幫助入門。
在此先感謝。
感謝您的詳細解釋和快速響應。這很好。 – JimmyF 2014-12-03 16:23:29