簡體   English   中英

Medoo | 使用內部聯接刪除

[英]Medoo | Delete with Inner Join

嗨,目前我開始使用Medoo,當我檢查文檔時,我找不到用內部連接語句刪除記錄的方法。

是否有使用$db->delete()方法$db->delete()內部$db->delete()記錄的解決方法?

原始SQL查詢:

DELETE t1 FROM customers t1 INNER JOIN customers t2 WHERE t1.id < t2.id AND (t1.customer_name = t2.customer_name AND t1.customer_unique_code = t2.customer_unique_code)

到目前為止我嘗試使用內部查詢,就像我在$db->select所做的那樣,但不幸的是它沒有用。

目前我可以使用$db->query()來處理它,但這對我來說不是最佳解決方案。

$db->query(
    'DELETE
        t1 FROM '.$customers_db.' t1 INNER JOIN '.$customers_db.' t2 WHERE t1.id < t2.id AND(
            t1.customer_name = t2.customer_name AND t1.customer_unique_code = t2.customer_unique_code)
');

我想知道是否有比這更好的方法。

提前感謝您的建議

可以在查詢中執行此操作,但使用連接執行此操作並非最佳方法。 嘗試使用這樣的參數化:

$db->query(
    'DELETE t1
        FROM :custdb t1
        INNER JOIN :custdb t2
        WHERE t1.id < t2.id
            AND (
                t1.customer_name = t2.customer_name AND t1.customer_unique_code = t2.customer_unique_code
            )',
    [
        ":custdb" => "customer_DB_name"
    ]
);

我不知道如何使用刪除進行連接(我懷疑是否可能)但是,如果在數據庫本身中創建所需的視圖,則可以在刪除語句中選擇視圖而不會出現問題。

暫無
暫無

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

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