0

我需要一个查询,它以以下方式给我带来结果:

prescription created date
right lens product
left lens product
store name
is prescription used for order **Yes / no**

我的数据库表如下:

**prescriptions**
  creation_date
  right_product_id
  left_product_id
  store_id
  customer_id

**products**
  id
  name1

**stores**
  id
  name

**orders** 
  id
  store_id
  customer_id

**order_products**
  id
  order_id
  right_product_id
  left_product_id

一个问题是,我没有使用prescription_id我的订单表,所以我不能带来直接的结果,因此我需要使用customer_idstore_id字段来匹配处方和订单是否下达。

谁能给我一个带来上述结果的查询?

结果应该是这样的:

处方日期 | right_lens_product | left_lens_product | 商店 | 使用的处方

2012/12/12 | 产品 1 | 产品 2 | xYZ 商店 | 是/否

尽早回复将不胜感激。

谢谢 !

4

1 回答 1

0

这个怎么样?

SELECT p.creation_date, pr1.name1, pr2.name1, s.name, if(p.creation_date IS NULL, 'Yes', 'No')
FROM (order_products op, stores s, products p1, products p2, orders o)
LEFT JOIN prescriptions p ON p.customer_id = o.customer_id AND p.store_id = o.store_id
WHERE o.id = op.order_id AND s.id = o.store_id AND p1.id = op.right_product_id AND p2.id = left_product_id

这只是一个接近的猜测,没有实际设置表格,但应该接近(据我了解这个问题)。

Left joining the prescription table allows us to tell if the order was related to a prescription or not.

于 2013-01-05T06:05:28.873 回答