亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

PHP 查詢 - 如果表中存在則排除

PHP 查詢 - 如果表中存在則排除

PHP
慕桂英4014372 2023-08-19 16:38:36
orderfoodorderfood_id   food_id   total_amountfoodcancelfoodcancel_id   food_id  status$query = $this->db->query("SELECT * FROM order_food of LEFT JOIN `foodcancel` fc ON of.food_id = fc.food_id WHERE of.orderfood_id = '" . (int)$orderfood_id . "'");    $order_foods = $query->rows;上面是我的查詢,我想要的是,如果 foodcancel 表中有 food_id ,將其從行中排除,可以這樣做嗎?
查看完整描述

2 回答

?
MMTTMM

TA貢獻1869條經驗 獲得超4個贊

要排除現有值,您可以嘗試檢查 null 來查找相應的匹配值


    SELECT * 

    FROM order_food of 

    LEFT JOIN foodcancel fc ON of.food_id = fc.food_id 

         and  of.food_id  = your_value  


    WHERE fc.orderfood_id is  null 

        

無論如何,你不應該在你的sql代碼中使用php var,因為這樣你就有sqlinjection的風險,為了避免這種情況,你應該看看準備好的語句和綁定參數


查看完整回答
反對 回復 2023-08-19
?
慕運維8079593

TA貢獻1876條經驗 獲得超5個贊

這是很有可能做到的。按照我的邏輯。首先,您必須獲取 food_cancel 表上的所有 food_id。然后將其保存到 variabel 中,并在顯示 orderFood 表并添加 NOT IN 條件時使用它。


我已經為你寫了代碼


<?php


// Get Food Id From Cancel 

$orderCancel   = mysqli_query($mysqli, "SELECT * FROM `foodcancel`");

$cancelId      = "";

while ($cancel = mysqli_fetch_array($orderCancel)) {

  $cancelId   .= $cancel["food_id"].",";

};

$cancelId      = substr($cancelId, 0, -1);


// Put Food Id on Cancel Table into NOT IN Condition Database

$orderFood     = mysqli_query($mysqli, "SELECT * FROM `orderfood` WHERE food_id NOT IN ($cancelId)");

while ($order  = mysqli_fetch_assoc($orderFood)) {

  $food[]      = $order;

};


echo json_encode($food);


?>


查看完整回答
反對 回復 2023-08-19
  • 2 回答
  • 0 關注
  • 146 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號