Хорошо, у меня есть база данных, которая выглядит следующим образом:
Заказы, услуги, заказ единиц, заметки
Orders: id
Services: id, orderid
Units: id, Orderid, unitnumber
Notes: id, relatedid, text, date
- Заказы имеют от 1 до многих единиц заказа
- Заказы имеют 1 ко многим услугам
- Службы имеют от 1 до многих примечаний
Я пытаюсь связать только примечания, которые относятся к устройству, и показать эти записи, проблема в том, что между примечаниями и модулем нет связи в базе данных, только обслуживание и примечание.
Я пытаюсь получить следующее:
select u.unitnumber
,n.date
,o.id
,s.id
,n.text
FROM tblorders o
INNER JOIN tblServices s on o.id = s.orderid
INNER JOIN tblUnits u on o.id = u.orderid
INNER JOIN tblNotes n on s.id = n.RelatedId
WHERE n.Text LIKE '<p>The status for the Unit # % has changed from % to OUTTOVENDOR</p>'
Проблема здесь в том, что это дает мне 2 единицы 4 раза, если в одной и той же службе есть 2 единицы, потому что услуга связана с примечанием, а не с единицей.
В записке есть номер единицы, поэтому мне было интересно, смогу ли я там что-нибудь сделать, чтобы каким-то образом связать заметку с номером единицы?
Спасибо!