Подзапрос из возвращенного значения запроса в sql?

0

У меня три продаж tables-, sales_details, медицина. Из таблицы продаж я соберу sale_id, и с этим я получу детали конкретной продажи из sales_details. Наряду с этим в sales_details есть одна ячейка для id (mid) для медицины. Используя эту середину, я также хотел бы получить имя лекарства и вернуть все данные в одном запросе.

Вот что у меня есть far-

        SELECT 'mid', 'qty', 'rate', 'total_price', 'discount', 'total_discount', (SELECT 'medicine'.'product_name' FROM 'medicine' WHERE 'sales_details'.'mid' = 'medicine'.'product_id') AS 'medicine_name'
        FROM 'sales_details'
        WHERE 'sale_id' IN (SELECT 'sale_id' FROM 'sales' WHERE 'invoice_no' = '$invoiceID;

Я получаю все данные, в том числе mid, но имя_данных - null в каждой строке. Что не так в запросе plz?

  • 0
    Вам нужно ВНУТРИ СОЕДИНИТЬ свои 3 связанные таблицы по их общим столбцам.
Теги:
subquery

1 ответ

1
Лучший ответ

Вы отказываетесь от подзапроса с помощью внутреннего соединения

  SELECT s.'mid'
  , s.'qty'
  , s.'rate'
  , s.'total_price'
  , s.'discount'
  , s.'total_discount'
  , m.'product_name' medicine_name
  FROM 'sales_details' d
  INNER JOIN 'medicine' d.mid = m.product_id 
  INNER JOIN sales  s on s.sale_id = d.sale_id AND $invoiceID

но не следует использовать php var в sql, у вас есть риск для sqlinjection.. для этого взгляните на ваш SQL-драйвер для привязки параметра

Ещё вопросы

Сообщество Overcoder
Наверх
Меню