php - Mysql在2个表左连接中搜索

标签 php mysql sql tags

我有 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/

相关文章:

PHP 查找特定链接并添加到变量

Python MySQLClient 安装失败,出现 "metadata-generation-failed"

php - Mysql 按 2 列排序,分别代表价格和新价格

sql - 如何根据 CASE 执行不同的 SELECT 语句

sql - 每小时汇总一段时间内的值

sql - 如何重用 2 个相同子查询检索到的值?

php - 在 PHP 中解决一个数学问题/表达式,它是一个字符串

javascript - 根据 PHP 中给定的 UTC 时间和秒数计算 UTC 时间

php - Laravel 4.1 WhereIn w/多对多关系和条件?

php - 将带撇号的文本插入 MySQL