0

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

尤因 | 姓名

另一个是这样的:

标签_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"

由于某种原因,这不起作用...请帮助。

提前致谢。

4

1 回答 1

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
于 2013-09-20T08:43:42.007 回答