Как исправить условный запрос WHERE и JOIN sql table? - PullRequest
0 голосов
/ 08 апреля 2019

Я пытаюсь выбрать конкретную информацию из таблицы, которая зависит от условий двух других таблиц.

Когда я пытаюсь работать с отдельными условиями, но когда я пытаюсь работать с условиями, нет.

При этом я получаю правильные данные из таблицы:

$sql = "SELECT * FROM commerce_order WHERE m_key = 'total'"; 

И с этим я также получаю результат из таблицы:

$sql = "SELECT * 
        FROM  commerce_order M 
        JOIN commerce_order_items I 
          ON M.item_id = I.item_id 
        JOIN produtcs P 
          ON I.order_id = P.ID 
        WHERE status = 'complete'";

но когда я пытаюсь это сделать, я не получаю никакого результата:

$sql = "SELECT * 
        FROM commerce_order M 
        WHERE m_key = 'total' 
        JOIN commerce_order_items I 
          ON M.item_id = I.item_id 
        JOIN produtcs P 
          ON I.order_id = P.ID 
        WHERE status = 'complete'";`

Я ожидал, что первый результат кода будет отфильтрован по второму условию кода. Теперь я получаю значения из первой таблицы, которые должны возвращаться, но я ничего не получаю.

1 Ответ

0 голосов
/ 08 апреля 2019

Вы не можете поставить WHERE m_key = 'total' до JOIN все ваши пункты WHERE должны идти после всех ваших JOIN s:

$sql = "SELECT * 
    FROM commerce_order M  
    JOIN commerce_order_items I 
      ON M.item_id = I.item_id 
    JOIN produtcs P 
      ON I.order_id = P.ID 
    WHERE status = 'complete' AND m_key = 'total'";
...