![](/img/trans.png)
[英]Using an Alias on a Subquery and then doing a LEFT JOIN with it in the ON clause
[英]SQL LEFT JOIN Subquery Alias
我正在運行這個 SQL 查詢:
SELECT wp_woocommerce_order_items.order_id As No_Commande
FROM wp_woocommerce_order_items
LEFT JOIN
(
SELECT meta_value As Prenom
FROM wp_postmeta
WHERE meta_key = '_shipping_first_name'
) AS a
ON wp_woocommerce_order_items.order_id = a.post_id
WHERE wp_woocommerce_order_items.order_id =2198
我得到這個錯誤:
#1054 - “on 子句”中的未知列“a.post_id”。
我認為我的代碼很簡單,但我做不對。 我究竟做錯了什么?
您沒有在子查詢中選擇post_id
。 您必須像下面這樣在子查詢中選擇它:
SELECT wp_woocommerce_order_items.order_id As No_Commande
FROM wp_woocommerce_order_items
LEFT JOIN
(
SELECT meta_value As Prenom, post_id -- <----- this
FROM wp_postmeta
WHERE meta_key = '_shipping_first_name'
) AS a
ON wp_woocommerce_order_items.order_id = a.post_id
WHERE wp_woocommerce_order_items.order_id =2198
我知道答案是可行的,並且已經被接受,但是有一種更簡潔的方式來編寫該查詢。 在mysql和postgres上測試。
SELECT wpoi.order_id As No_Commande
FROM wp_woocommerce_order_items AS wpoi
LEFT JOIN wp_postmeta AS wpp ON wpoi.order_id = wpp.post_id
AND wpp.meta_key = '_shipping_first_name'
WHERE wpoi.order_id =2198
創建數據庫 Joins_With_F_K
使用 Joins_With_F_K
創建表人(id int 身份主鍵不為空,名稱 varchar(20),地址 varchar(20),聯系人 int,城市 varchar(20),food_id int,)
創建表 Order1 ( id int identity 主鍵不為空,食物 varchar(20) 不為空,日期 varchar(20) 不為空,數量 int 不為空,風味 varchar(20) 不為空,數量 int 不為空
)
更改表人員添加約束 person_fk 外鍵 (food_id) 引用 order1(id)
插入個人值 ('marium','nazimabad',033513,'karachi',1), ('faiza','nazimabad',033513,'karachi',2), ('anabia','nazimabad',033513 ,'karachi',3), ('aqsa','nazimabad',033513,'karachi',4), ('savera','nazimabad',033513,'karachi',5), ('rubi',' nazimabad',033513,'karachi',6), ('bisma','nazimabad',033513,'karachi',7) 插入個人值 ('sami khan ','nazimabad',033513,'karachi',8 )
插入 Order1 值('pizza','18\\01\\2022',1,'tikka',300), ('biryani','18\\01\\2022',1,'chicken tikka',200), ( '果汁','18\\01\\2022',1,'橙子',150), ('漢堡','18\\01\\2022',1,'tikka',250), ('broast','18 \\01\\2022',1,'雞肉咖喱',300), ('pizza','18\\01\\2022',1,'fagita',300), ('pizza','18\\01\\2022' ,1,'malai boti',500)
插入 Order1 值('Zinger Pizza','18\\01\\2022',2,'tikka',300)
從人員中選擇 * 從訂單 1 中選擇 *
從 person 中選擇 * ,quantity*amount 作為 t_aomunt 作為內部連接訂單 1 作為 a.food_id = b 上的 b。 ID
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.