MySQL:获取具有不同参数的行

标签 mysql sql

假设我有下一张 table

Table names
id | name
1  | mike
2  | john
3  | jack

Table attributes
name_id | skill
1 | css
1 | html
1 | php
2 | html
2 | java
2 | css
3 | java

我需要获取所有具有例如 css 和 html 属性的 ID 和名称。我试过使用“JOIN”,但要搜索的属性数量可能不同。

我还没有尝试其他任何东西,因为我不知道该尝试什么。

谢谢

最佳答案

尝试使用 GROUP BY ...HAVING COUNT(DISTINCT ...):

SELECT name_id
FROM attributes
WHERE skill IN ('css', 'html')
GROUP BY name_id
HAVING COUNT(DISTINCT skill) = 2

在线查看它:sqlfiddle

您也可以加入以获取名称。

关于MySQL:获取具有不同参数的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12599752/

相关文章:

sql - 如何在 DB2 过程中将整数值与字符串连接起来

mysql - Laravel 5.7 中修改后的用户注册停止工作(字段 'last_name' 没有默认值,但数据完整)

php - 加速 MySQL 查询,尝试了普通查询和连接 - 速度相同

MySQL 集群节点特定硬件

MySQL查询以获取所有最高ID

sql - T-SQL 动态枢轴

mysql - 如何从出勤表中获取出勤率最高的student_id?

mysql - 使用 MSSQL 数据库和 MySQL 数据库

mysql - Magento 商店 - SQL 错误

sql - MS Access左联接SQL语法错误