簡體   English   中英

如何將在同一表上執行的兩個 SQL 查詢合並為一個?

[英]How to combine two SQL queries being performed on the same tables into one?

下面是我需要合並為一個的 2 個查詢,即使右表中沒有匹配的行,我也喜歡從左表中獲取行。

                    $sql = "SELECT country.printable_name FROM sku"
                    . "LEFT OUTER JOIN country ON country.numcode=sku.c_code"
                    . "WHERE sku.item_sku='JDJ2020'";

                   $sql= "SELECT hs_code FROM hs_codes"
                   . "INNER JOIN sku ON 
                   sku.base_category=hs_codes.base_category AND 
                   sku.sub_category=hs_codes.sub_category"
                   . "WHERE sku.item_sku = 'JDJ2020'";

清除 PHP 代碼后,查詢將如下所示

SELECT country.printable_name 
FROM sku
LEFT OUTER JOIN country ON country.numcode=sku.c_code
WHERE sku.item_sku='JDJ2020';

SELECT hs_code 
FROM hs_codes
INNER JOIN sku ON sku.base_category=hs_codes.base_category 
              AND sku.sub_category=hs_codes.sub_category
WHERE sku.item_sku = 'JDJ2020';

他們的組合可能看起來像

SELECT country.printable_name, hs_codes.hs_code
FROM sku
INNER JOIN hs_codes ON sku.base_category=hs_codes.base_category 
                   AND sku.sub_category=hs_codes.sub_category
LEFT OUTER JOIN country ON sku.c_code=country.numcode
WHERE sku.item_sku='JDJ2020';

如果存在一個排country該行匹配sku始終然后更換LEFT OUTER JOININNER JOIN

如果country和/或hs_codes存在多個匹配行,那么您將獲得多個輸出行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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