MySQL,使用2个表获取信息

时间:2014-01-07 09:51:52

标签: mysql

有两个表:wp_users和wp_usermeta。

wp_users表的结构如下:

id | email
---------------
1  | b@foo.com
2  | k@bah.com

wp_usermeta表的结构如下:

id | user_id | meta_key                | meta_value
---------------------------------------------------
1  | 1       | firstname               | bob
2  | 1       | lastname                | smith
3  | 1       | app_prefferedcategories | {"blog_id":"5"},{"blog_id":"22"}
4  | 2       | firstname               | jan
5  | 2       | lastname                | jones
6  | 2       | app_prefferedcategories | {"blog_id":"1"},{"blog_id":"7"}

我要完成的是在meta_key app_prefferedcategories中获取meta_value为{“blog_id”:“5”}的用户的所有电子邮件地址。 我知道如何一次查询一个表,但我很难加入它们。 任何人都可以对此发光吗?

提前致谢!

2 个答案:

答案 0 :(得分:1)

select u.email
from wp_usermeta m
inner join wp_users u on u.id = m.user_id
where meta_key = 'app_prefferedcategories'
and find_in_set('{"blog_id":"5"}', meta_value) > 0

答案 1 :(得分:1)

SELECT u.email
FROM wp_users u
INNER JOIN wp_usermeta um ON u.id = um.user_id
WHERE um.meta_key = 'app_prefferedcategories' AND um.meta_value LIKE '%{"blog_id":"5"}%'