Ошибки при получении значений из 2 таблиц MySQL

У меня с моим столом отношения. У меня есть эта таблица, которая добавляет новые позиции закупок, она имеет 2 столбца — line_manager_remark а также c_level_remark это показывает статус одобрения линейным руководителем и руководителем уровня C.

введите описание изображения здесь

Значения для этих столбцов получены из другой таблицы

введите описание изображения здесь

Теперь у меня проблемы с получением статуса (определений) предметов. Это не работает.

Это то, что я сделал

SELECT
a.*,
b.*
FROM
request_items AS a,
request_status AS b
WHERE
a.line_manager_remark = b.id
AND
a.c_level_remark = b.id
AND
a.request_id = '$id'
AND
state = 'active'

-1

Решение

SELECT
request_items.*,
request_status_line_manager.definition AS line_manager_status,
request_status_c_level.definition AS c_level_status,
FROM
request_items
INNER JOIN request_status AS request_status_line_manager
ON request_items.line_manager_remark = request_status_line_manager.id
INNER JOIN request_status AS request_status_c_level
ON request_items.c_level_remark = request_status_c_level.id
WHERE
request_items.state = 'active'
AND
request_items.request_id = '$id'

Отмечу — если '$id' является свидетельством интерполяции строк в PHP / Perl немедленно прекратите и использовать параметризованные запросы, в противном случае ваш запрос уязвим для внедрения SQL (и я предполагаю, request_items.request_id является int вместо текстового столбца тоже …)

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector