表格广告:
id uid name description
1 1 BMW Z5 good condition
2 1 Sell house new
表格ad_values
id sid m_input m_value
1 1 car BMW
2 1 year 2010
3 1 category 1
4 2 year 2005
如何搜索表'ad_values'?例如,我需要汽车宝马,建造年份是2010年。我尝试过这样的事情:
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
然后我从表'ad'获得SID和SELECT。但它不起作用。
对不起我的英文,感谢您的帮助!
答案 0 :(得分:2)
在为表'ad_values'提供搜索查询字词后,您似乎希望结果来自表'广告'。这有点像你想要的吗?
<强>更新强>
我修复了查询以正确返回匹配的记录。
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')
)
此查询应产生以下结果:
id uid name description
1 1 BMW Z5状况良好
听起来对吗?