我有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"
由于某些原因,这不起作用...... 请帮忙。
提前致谢。
答案 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