#php #mysql #datatable #conditional
#php #mysql #datatable #условные операторы
Вопрос:
Я пытаюсь выбрать конкретную информацию из таблицы, которая зависит от условий двух других таблиц. Когда я пытаюсь работать с отдельными условиями, но когда я пытаюсь работать с двумя условиями, это не так.
При этом я получаю правильные данные из таблицы:
$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. вы не можете поставить
WHERE m_key = 'total'
передJOIN
всеми вашимиWHERE
s должны идти после всех вашихJOIN
s
Ответ №1:
Вы не можете поставить WHERE m_key = 'total'
перед JOIN
всеми вашими WHERE
предложениями, должны идти после всех ваших JOIN
:
$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'";
Комментарии:
1. Проблема в том, что если я это сделаю, я буду рассматривать m_key как статус в таблице produtcs, но m_key находится в первой таблице, из которой я хочу получить значения.