如何在单条SQL查询中从同一张表的同一列获取不同对应值?
解决方案
涉及的表结构
goodsinfo表
| seller ID | goods ID |
|---|---|
| 1 | 5 |
| 3 | 7 |
mainrefer表
| ID | Codename |
|---|---|
| 1 | Richard |
| 3 | Sam |
| 5 | Mobile phones |
| 7 | IT cables |
期望查询结果
| Seller name | goods name |
|---|---|
| Richard | Mobile phones |
| Sam | IT Cables |
实现SQL语句
SELECT s.Codename AS `Seller name`, g.Codename AS `goods name` FROM goodsinfo gi JOIN mainrefer s ON gi.`seller ID` = s.ID JOIN mainrefer g ON gi.`goods ID` = g.ID;
逻辑说明
通过两次关联mainrefer表并赋予不同别名,分别匹配卖家ID和商品ID:
- 别名
s的表用于匹配seller ID,提取卖家名称; - 别名
g的表用于匹配goods ID,提取商品名称; - 最后将两个字段重命名为目标列名即可完成需求。
内容的提问来源于stack exchange,提问作者DovorLeux Vanadium
相关产品推荐
相关产品推荐

