我有 2 张 table 。
像这样的一个:
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"
由于某种原因这不起作用...... 请帮助。
提前致谢。
最佳答案
使用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
关于php - Mysql在2个表左连接中搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18912334/