title: MySQL Query for Advanced Search multiple criteria
body: <p>I'm working through an advanced search query where users select checkboxes based on multiple criteria.  I'm a beginner so I'm hoping I can find out if I'm on the right track. I'm aware the query is quite the mess. </p>
  
  <p><strong>Edit: I realized this needed to be two questions, so I've revised to be strictly a query question</strong></p>
  
  <p>Table data</p>
  
  <pre><code>Table ss_users
  user_id  first_name   last_name   admin_level   user_approved  
  1        nick         jones       0             1      
  2        johnny       rocket      0             1      
  
  Table ss_user_profile_status
  user_id  photo_uploaded   
  1        1
  2        1
  
  Table ss_user_photos
  photo_id  user_id  filename      selected
  1         1        photo_1.jpg   1
  2         2        photo_2.jpg   0
  3         2        photo_2.jpg   1
  
  Table ss_general
  user_id  city        state      zip     neighborhood
  1        baltimore   maryland   00125   hamsterdam
  2        lakeland    maine      11542   treemont
  
  Table ss_languages
  user_id  french  german  italian  spanish
  1        0       1       0        1
  2        0       0       1        1
  
  Table ss_experience
  user_id  waldorf  kumon  homeschooling 
  1        0       1       0
  2        0       0       1
  </code></pre>
  
  <p>My current results are all users, which should not be the case:</p>
  
  <pre><code>SELECT 
      ss_users.*, ss_user_profile_status.*, ss_user_photos.*, ss_general.*, 
      ss_languages.*, ss_experience.*, ss_users.user_id AS userID, 
      ss_user_profile_status.user_id, ss_languages.user_id AS langID
  FROM 
      ss_users
  JOIN 
      ss_user_profile_status ON ss_users.user_id = ss_user_profile_status.user_id
  LEFT JOIN 
      ss_user_photos ON ss_users.user_id = ss_user_photos.user_id
  AND 
      ss_user_photos.selected = 1
  LEFT JOIN 
      ss_languages ON ss_users.user_id = ss_languages.user_id
  LEFT JOIN 
      ss_general ON ss_users.user_id = ss_general.user_id
  LEFT JOIN 
      ss_experience ON ss_users.user_id = ss_experience.user_id
  WHERE 
      ss_users.user_id = ss_user_profile_status.user_id 
  AND 
      ss_general.neighborhood_select LIKE '%hamsterdam%'
  OR 
      ss_languages.spanish = 1
  OR 
      ss_experience.kumon = 1
  AND 
      ss_users.sitter_approved = 1
  AND 
      ss_users.admin_level = 0
  GROUP BY 
      ss_users.user_id DESC
  </code></pre>
  
  <p>For the output I need to represent much of the users profile, that's why I'm selecting a lot of table data, as well as the extra joins. </p>