SQL 查询 JOIN 一个表(单独的 ID 和 Titles 表)

标签 sql select join

订单表

o_id   customer_id   drink_id   food_id
----   -----------   --------   -------
 1         22         10          12
 2         22         11          12
 3         22         11          12
 4         44         11          13
 5         22         11          13

标题表

t_id   title_id   type      title
----   --------   ----      -----
 1        10      drink     Black Velvet
 2        11      drink     Mojito
 3        12      food      Rice
 4        13      food      Meat

如何产生此结果:

例如customer_id = 22

o_id   drink_id   drink_title   food_id   food_title
----   --------   -----------   -------   ----------
 1        10     Black Velvet     12         Rice
 2        11        Mojito        12         Rice
 3        11        Mojito        12         Rice
 5        11        Mojito        13         Meat

我不知道这样做是否正确:

  1. 嵌套的 SELECT 查询?
  2. 或者重命名后订单表本身的JOIN? (如果是这种情况,查询应该是什么样子?)

最佳答案

您可以将title表多次联接orders表:

select o.o_id, o.drink_id, t.title drink_title, o.food_id, t2.title food_title
from orders o 
    inner join title t on o.drink_id = t.type
    inner join title t2 on o.food_id = t2.type
where o.customer_Id = 22

关于SQL 查询 JOIN 一个表(单独的 ID 和 Titles 表),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30064208/

相关文章:

mysql - 分层SQL查询

sql - 防止 SELECT 检索事务开始后提交的行

azure - 通过 LOCATION 语句从 EXTERNAL 中选择

jquery - 使用 jquery 选择表单过滤器

php - MySQL (Laravel Eloquent) - 当两列同时有两个或多个值时获取记录

mysql - 内连接 : add up amounts with same id

mysql - 在 SQL 查询中将 dd/mm/yyyy 转换为 DATETIME

SQL:如何从一个表中为另一个表中的每一行获取随机数的行

mysql - 在 SQL 中配对项目并减去结果

mysql - 加入搜索结果