2010-11-09 16 views
2

ad table:Choisissez parmi plusieurs lignes

id uid name     description  
1 1 BMW Z5    good condition 
2 1 Sell house   new   

Table ad_values ​​

id sid m_input m_value 
1 1  car  BMW 
2 1  year  2010 
3 1  category 1 
4 2  year  2005 

Comment puis-je effectuer des recherches dans la table 'ad_values'? Par exemple, je dois voiture BMW Wich construction année 2010. J'ai essayé quelque chose comme ceci:

SELECT * FROM ad_values WHERE (m_value='BMW' AND m_input='car') AND (m_input='year' AND m_value='2010') AND (m_input='category' AND m_value='1') GROUP BY sid 

Puis-je obtenir SID et SELECT de table « ad ». Mais ça ne marche pas.

Désolé pour mon anglais et merci pour toute aide!

Répondre

2

Il semble que vous souhaitiez que les résultats proviennent de la table 'ad' après avoir fourni des termes de requête de recherche pour la table 'ad_values'. Est-ce quelque chose comme ce que tu veux?

MISE À JOUR

Je fixe la requête pour renvoyer correctement les enregistrements correspondants.

SELECT 
    DISTINCT a.* 
FROM 
    ad_values v, 
    ad a 
WHERE 
    v.sid = a.id AND 
    ( 
     (v.m_value='BMW' AND v.m_input='car') OR 
     (v.m_input='year' AND v.m_value='2010') OR 
     (v.m_input='category' AND v.m_value='1') 
    ) 

Cette requête devrait donner les résultats suivants:

id Description Nom uid
1 1 BMW Z5 bon état

son droit au sujet?

+0

MySQL a renvoyé un jeu de résultats vide. – word

+0

Vous avez raison. J'ai mis à jour la requête. – karlgrz