記錄一下第一次寫 50行 SQL程式碼

這 是一個電商項目,做的是報表的展示,我還以為要請求幾次,結果,用一個SQL全部查完了

下面是目標效果圖

這是我的SQL程式碼

SELECT
	product.NAME,
product.price,
	pros.order_num,
	product.price * pros.count_product sum_price,
	ads.create_time,
	ads.contact_address,
	ads.contact_name,
	ads.contact_mobile
FROM
	product,
	(
		SELECT
			order_num,
			product_id,
			COUNT(product_id) count_product
		FROM
			order_item
		WHERE
			order_num = "O2020100500001"
		GROUP BY
			product_id
	) pros,
	(
		SELECT
			of.create_time,
			ot.product_id pid,
			of.contact_address,
			of.contact_name,
			of.contact_mobile
		FROM
			order_item ot,
			order_info of
		WHERE
		 of.order_num = "O2020100500001"
		AND ot.order_num = "O2020100500001"
	) ads
WHERE
	id IN (
		SELECT
			product_id
		FROM
			order_item
		WHERE
			order_num = "O2020100500001"
		GROUP BY
			product_id
	)
AND id = pros.product_id and id = ads.pid
group by id

這是我的查詢效果

總結

  1. 在sql之中,可以使用結果集做為表來查詢(以前會,只不過忘了)
  2. 在sql之中,可以使用這個嵌套查詢來做為複雜查詢(會犧牲效率,但鬼換取的是一勞永逸)
Tags: