我有3个表设置如下:
Quotes Table Stores Table
id store_id date_submitted store_number code
1 15 1/29/13 23:13 15 ANT
2 16 1/30/13 7:47 16 MAT
Leads Table
code user_name
MAT User1
ANT User2
我希望能够做的是让查询返回引号表中的所有值,然后返回Stores表中的代码值和引导表中的user_name。我希望它看起来像这样:
id store_id date_submitted code user_name
1 15 1/29/13 23:13 ANT User2
2 16 1/30/13 7:47 MAT User1
我写了以下查询:
SELECT id, store_id, date_submitted, code, user_name FROM quotes q, stores s, leads l WHERE CONCAT('%', q.store_id, '%') LIKE CONCAT('%', s.store_number, '%') AND s.code=l.code AND date_submitted > "2013-01-01 00:00:00" AND date_submitted < "2013-01-31 23:59:59" GROUP BY q.id
我遇到的问题是数据库没有将代码与正确的store_id匹配。
我不确定我在这里做错了什么,我看了几篇SO帖子,并用谷歌搜索无效。
任何帮助都将不胜感激。
答案 0 :(得分:2)
那么,为什么你使用通配符(%
)与store_id
加入store_number
?,你不能使用完全匹配吗?另外,为了清楚起见,您应该使用明确的JOIN
s:
SELECT id, store_id, date_submitted, code, user_name
FROM quotes q
INNER JOIN stores s
ON q.store_id = s.store_number
INNER JOIN leads l
ON s.code=l.code
WHERE date_submitted > "2013-01-01 00:00:00"
AND date_submitted < "2013-01-31 23:59:59"
GROUP BY q.id