簡體   English   中英

SQL LEFT JOIN 子查詢別名

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM