MySQL全选,有一列是不同的,同时还返回其他相应的列
我有下表:MySQL全选,有一列是不同的,同时还返回其他相应的列,mysql,Mysql,我有下表: +-------------+---------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------------+---------------+------+-----+---------+----------------+ | id | int(11)
+-------------+---------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+---------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(200) | YES | | NULL | |
| department | varchar(40) | YES | | NULL | |
| type | varchar(40) | YES | | NULL | |
| description | varchar(1000) | YES | | NULL | |
| duration | varchar(20) | YES | | NULL | |
| start_date | varchar(20) | YES | | N/A | |
| study_mode | varchar(9) | YES | | NULL | |
| icon_url | varchar(100) | YES | | NULL | |
+-------------+---------------+------+-----+---------+----------------+
我想运行一个查询,输出每个部门,消除重复项,因为同一部门可能有两个不同的课程
图像中的查询基本上实现了我想要的功能,唯一的问题是它输出的表2的每个字段中也只有空值。有没有一种方法可以运行只输出t1的类似查询
当前查询:
SELECT *
FROM `courses` AS t1
LEFT JOIN `courses` AS t2
ON t1.department = t2.department
AND t1.name < t2.name
WHERE (t2.id IS NULL) AND (t1.type = 'Apprenticeship')
ORDER BY t1.department\G
选择*
从'courses'改为t1
左连接'courses'作为t2
在t1.department=t2.department上
和t1.name
使用选择t1.
而不是选择*
SELECT t1.*
FROM `courses` AS t1
LEFT JOIN `courses` AS t2
ON t1.department = t2.department
AND t1.name < t2.name
WHERE (t2.id IS NULL) AND (t1.type = 'Apprenticeship')
ORDER BY t1.department
选择t1.*
从'courses'改为t1
左连接'courses'作为t2
在t1.department=t2.department上
和t1.name
如果要控制查询中的列,请不要使用*
。事实上,根本不要使用*
。非常感谢!