Member 11337367 Ответов: 1

Мой SQL запрос не дает результата


select  det.* ,uim.c_code from 
cust_inv_det det 
join u_stockiest_item usc on det.c_c2code=usc.c_stockiest_code and det.c_item_code=usc.c_stockiest_item_code
join u_item_mst uim on uim.c_code=usc.c_ucode
join u_item_mfac_mst mfac on mfac.c_code=uim.c_item_mfac_code
where det.d_date='2019-01-16'


Этот запрос будет выполнен менее чем за секунду, и никаких проблем.

Если я добавлю в этот запрос какое-либо условие, отличное от det.d_date, он не будет выполняться, все еще выполняя запрос.

Для тестирования я добавил условие на таблицы usc,uim,mfac по одному за раз, но не выполнил полностью

Что я уже пробовал:

Это запрос с другим условием в предложении where но он не будет выполняться
select  det.* ,uim.c_code from 
cust_inv_det det 
join u_stockiest_item usc on det.c_c2code=usc.c_stockiest_code and det.c_item_code=usc.c_stockiest_item_code
join u_item_mst uim on uim.c_code=usc.c_ucode
join u_item_mfac_mst mfac on mfac.c_code=uim.c_item_mfac_code
where det.d_date='2019-01-16' and usc.c_stockiest_item_code='142193'

CHill60

"не будет выполняться" - тогда что такое сообщение об ошибке?
"не выполнил полностью" - опять же, что такое сообщение об ошибке?
Некоторые примеры данных всегда полезны, если вы хотите, чтобы мы вам помогли.

Member 11337367

значит запрос не выполнил его в рабочем режиме

ZurdoDev

1. Вы сказали, что он все еще работает. Это очень отличается от того, что он не будет выполнять.
2. Мы не видим ни ваших данных, ни вашей базы данных, поэтому я не уверен, что вы хотите от нас. У вас плохо работает запрос. Вам нужно исправить это с помощью индексов или изменения вашего запроса, но мы ничего не можем сделать, чтобы помочь, кроме как дать общие предложения.

Member 11337367

да на самом деле запрос выполняется только не давая результата только после добавления второго условия в where clause.index был создан на столбце usc.c_stockiest_item_code так почему же он не дает результата

CHill60

Как я уже говорил ранее и как упоминал Зурдодев - мы ничего не можем сделать без выборочных данных

MadMyche

Схема базы данных и индексы были бы полезны при устранении неполадок

1 Ответов

Рейтинг:
2

Anuj Vohra

You should try to format the date and then compare it with the value 

DATE_FORMAT("2019-01-16", "%Y-%m-%d")


You can try this:

select  det.* ,uim.c_code from 
cust_inv_det det 
join u_stockiest_item usc on det.c_c2code=usc.c_stockiest_code and det.c_item_code=usc.c_stockiest_item_code
join u_item_mst uim on uim.c_code=usc.c_ucode
join u_item_mfac_mst mfac on mfac.c_code=uim.c_item_mfac_code
where DATE_FORMAT(det.d_date, "%Y-%m-%d") ='2019-01-16' and usc.c_stockiest_item_code='142193'


Member 11337367

Если я добавляю date_format запрос продолжает работать только.это не даст результата до тех пор, пока выполнение не остановится mysql sever