使用mysql查询从父表获取所有项目和相关名称、电子邮件的优化方法是什么?

问题描述 投票:0回答:1

假设我们有一个由订单 ID 组成的订单表,那么在获取所有商品及其订单数据方面,什么被认为是“最佳实践”?

Order table:
--------

| id | name | email |  phone | event_id |
|---- |------| -----|-----| -----|
| 1    | Anish  | [email protected] | 8233472332| 1765 |
| 2    | ABC    | [email protected]   | 784472332| 1765 |
| 3    | XYZ    | [email protected]   | 646322332| 1525 |

items table:
------------


| id | order_id | category |  qty | price |
|---- |------| -----|-----| -----|
| 1    | 1  | person 1 | 2| 299 |
| 2    | 1    | person 2   | 1| 399 |
| 3    | 2    | person 1   | 1| 299 |

我想在单个查询中获取所有商品及其订单名称、电子邮件、电话。

预期结果

| name | email | category |  qty | price |
|---- |------| -----------|----- | ----- |
|  Anish   | [email protected]   | person 1 | 2| 299 |
| Anish    | [email protected].  | person 2   | 1| 399 |
| ABC      | [email protected]     | person 1   | 1| 299 |

一对多关系 订单 -> 商品(它有多行与单个订单相关)

我想显示活动的所有项目(例如:活动 ID - 1765)以及姓名、电子邮件和电话。请向我建议优化的 mysql 查询。我正在使用 Laravel 5.2。

php mysql laravel laravel-5
1个回答
0
投票

您可以通过在两个表之间使用简单的内部联接来获得该结果:

SELECT
  `order`.`name`,
  `order`.`email`,
  `items`.`category`,
  `items`.`qty`,
  `items`.`price`
FROM `order`
INNER JOIN `items` ON
  `order`.`id` = `items`.`order_id`
© www.soinside.com 2019 - 2024. All rights reserved.