SQL Получить данные из первой таблицы на основе критериев поиска во второй таблице

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

PHARMASTOCK(1)      Pharma Products(2)
ID                  ProductID   
ProductID           GenericName 
TradeName           TradeName   
MRP                 Supplier    
Rate                Manufacturer    
Stock               PurchasePTR 
Batch               UnitRate    
Expiry              MRP 
StockSection    

Это хранимая процедура SQL, которую я написал, но она не работает. как и ожидалось!

@StockSupplier varchar(50), @StockManufacturer Varchar(50)
AS


SELECT  PharmaStock.ProductID,PharmaStock.TradeName,PharmaStock.MRP,Rate,Batch,Expiry,StockSection,Stock,Supplier,Manufacturer 
from PharmaStock 
    Full JOIN PharmaProducts ON PharmaStock.ProductID = PharmaProducts.ProductID 
where Supplier  like + @StockSupplier + '%' and Manufacturer  like + @StockManufacturer + '%'
order by Manufacturer asc

Вы используете MySQL или MS SQL Server?

jarlh 27.05.2019 11:15

Ваш FULL OUTER JOIN возвращает результат RIGHT OUTER JOIN. Переместите условия предложения WHERE в предложение ON, чтобы получить истинный результат FULL OUTER JOIN.

jarlh 27.05.2019 11:16

Что вы ожидаете? Каков результат вашего запроса? Что не так в результате? Можете ли вы привести некоторые примеры данных?

heiwil 27.05.2019 11:16

@jarlh Сервер MS SQL

Mp Jeevan 27.05.2019 11:46

@heiwil Запрос не возвращает никаких результатов!

Mp Jeevan 27.05.2019 11:51
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
0
5
233
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий
    SELECT  PharmaStock.ProductID, 
PharmaStock.TradeName, 
PharmaStock.MRP, 
PharmaStock.Rate, 
PharmaStock.Batch, 
PharmaStock.Expiry, 
PharmaStock.StockSection, 
PharmaProducts.Supplier, 
PharmaProducts.Manufacturer  
FROM PharmaStock 
        INNER JOIN  PharmaProducts ON PharmaStock.ProductID = PharmaProducts.ProductID WHERE PharmaProducts.Supplier  LIKE  '%%' and PharmaProducts.Manufacturer  LIKE  '%%' 
ORDER BY PharmaProducts.Manufacturer asc

передать строки для поставщика и производителя для дальнейшей фильтрации результатов соединения.

SELECT  PS.ProductID,PS.TradeName,PS.MRP,PS.Rate,PS.Batch,PS.Expiry,PS.StockSection,PS.Stock,PP.Supplier,PP.Manufacturer 
    from PharmaStock PS
        inner JOIN PharmaProducts PP ON PS.ProductID = PP.ProductID 
    where Supplier  like CONCAT(@StockSupplier , '%') and Manufacturer  like CONCAT(@StockManufacturer ,'%') order by Manufacturer asc

В запросе изменяется функция конкатенации, а затем символ плюса (после того, как его нужно удалить).

SELECT  PharmaStock.ProductID,PharmaStock.TradeName,PharmaStock.MRP,Rate,Batch,Expiry,StockSection,Stock,Supplier,Manufacturer 
from PharmaStock 
INNER JOIN PharmaProducts ON PharmaStock.ProductID = PharmaProducts.ProductID 
where Supplier  like  @StockSupplier + '%' and Manufacturer  like  @StockManufacturer + '%'
order by Manufacturer asc

Другие вопросы по теме