【问题标题】:SQL join rows in two tablesSQL 连接两个表中的行
【发布时间】:2016-05-29 09:39:31
【问题描述】:

我不擅长 SQL,想知道是否可以这样做:我有两个表:table_a 和 table_b。两个表都有一个名为 category 的 TEXT 类型列。

例子:

表_a

|-id-|-category-|
| 1  | fruits   |
| 2  | meats    |
| 3  | fruits   |
| 4  | sweets   |
| 5  | meats    |

表_b

|-id-|-category-|
| 1  | veggies  |
| 2  | meats    |
| 3  | veggies  |
| 4  | veggies  |
| 5  | meats    |

我需要按字母顺序从两个表中选择所有不同的类别。

结果应该是:

fruits
meats
sweets
veggies

谢谢

【问题讨论】:

  • 你不需要join,你需要union
  • 查看我的代码,只需要union

标签: sql sqlite


【解决方案1】:

您应该使用UNIONORDER BY 子句:

SELECT DISTINCT category 
FROM Table_A
UNION 
SELECT DISTINCT category
FROM Table_B
ORDER BY category

【讨论】:

  • DISTINCT 是多余的,因为 UNION。
  • 不,不是,如果它们在同一张桌子上,它不会丢弃重复项。 @CL。
【解决方案2】:

在 sql 中你可以使用 union 和 order by

 select distinct category from (
 select category 
 from table_a
 order by category
 union 
 select category 
 from table_b ) 

【讨论】:

  • 我已经更新了答案(stage,因为在 slq union 中应该是不同的,但无论如何
  • 评论很好地解释了真正的主题,因为在 sql 中不需要区分但无论如何..
  • 如果你用另一个选择包裹它,你应该使用UNION ALL以获得更好的性能。
猜你喜欢
  • 1970-01-01
  • 2012-02-28
  • 2012-05-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多