Mysql在2个表中搜索左边的连接

时间:2013-09-20 08:42:01

标签: php mysql sql tags

我有2张桌子 一个像这样:

uin |名称

另一个是这样的:

tag_uin | uin_item |标记名

我想找到所有带有我想要的标签的uin,如下所示:

"SELECT nir_parts.name, nir_ntag.* FROM `nir_parts`
LEFT JOIN `nir_ntag` ON nir_parts.uin = nir_ntag.uin_item 
WHERE nir_ntag.uin = 212 AND WHERE nir_ntag.uin = 313 
ORDER BY RAND() LIMIT 11"

由于某些原因,这不起作用...... 请帮忙。

提前致谢。

1 个答案:

答案 0 :(得分:2)

使用OR搜索2个标签或使用IN()

SELECT nir_parts.name, nir_ntag.* 
FROM nir_parts 
LEFT JOIN nir_ntag ON nir_parts.uin = nir_ntag.uin_item 
WHERE nir_ntag.uin in (212, 313)
ORDER BY RAND() 
LIMIT 11

单个记录不能同时包含两个标记。

如果您只需要包含两个标记的记录,则可以执行

SELECT nir_ntag.uin_item 
FROM nir_parts 
LEFT JOIN nir_ntag ON nir_parts.uin = nir_ntag.uin_item 
WHERE nir_ntag.uin in (212, 313)
group by nir_ntag.uin_item
having count(distinct nir_ntag.uin) = 2