我一直在試圖爲woocommerce組織一個SQL查詢,它抓取並組織woocommerce_order_itemmeta
表中的所有數據。SQL子查詢返回空值行
我拼湊起來的基礎上用於抓取重力類似的查詢如下形式的散列值:
SELECT order_item_id AS entryId,
(
SELECT meta_value
FROM wp_woocommerce_order_itemmeta
WHERE meta_key = 'Name'
AND order_item_id = entryId LIMIT 1
) AS 'Full Name',
(
SELECT meta_value
FROM wp_woocommerce_order_itemmeta
WHERE meta_key = 'Email'
AND order_item_id = entryId LIMIT 1
) AS 'User Email',
(
SELECT meta_value
FROM wp_woocommerce_order_itemmeta
WHERE meta_key = 'Address'
AND order_item_id = entryId LIMIT 1
) AS 'User Address'
FROM wp_woocommerce_order_itemmeta
WHERE meta_value IS NOT NULL
GROUP BY entryId
ORDER BY entryId
它似乎運行正常。我已經通過MySQL運行它,並且得到了我需要的結果,但是我也得到了許多隻有NULL
值的行。
有沒有辦法用上述查詢過濾掉只有NULL
值的行?
您正在檢查where子句中的空值,但那是在您已經加入所有內容之後。添加meta_value對於每個聯接都不爲NULL的地方應該修復它。不確定在mysql中是否有更好的方法。 –
添加'where ...和entryId不爲空'。另外它不應該有可能具有多個空'entryId'的行。儘管有些系統彎曲該規則,但子查詢中的order_item_id = null嚴格不可行。 – shawnt00
謝謝你的建議。我試圖給每個子查詢添加「where meta_value is not null」,但它仍然成功運行,但仍然看到許多返回的NULL行。我發現它與沒有名稱,電子郵件地址等的entryID行有關,而只是包含_product_id,_line_subtotal,_line_total等的值。我將嘗試查看是否我可以將它們按照_original_order_id分組,因爲這似乎是每個訂單之間的共同點。 – gffwebdev