У меня есть проблема в моем запросе SQL
, который я пытаюсь запустить (я занимаюсь на этом этапе). Я пытаюсь получить некоторые реестры между двумя конкретными датами и некоторыми условностями.SQL не работает должным образом
Дело в том, что запрос не работает должным образом, поскольку он показывает только один и тот же реестр все время, я имею в виду, если есть 100
записей, запрос показывает 100
раз с той же записью.
Вот запрос:
SELECT Base.Registry.Registry,
Base.Client.Name,
Base.Client.Surname1,
Base.Client.Surname2,
Base.Client.BirthDate,
Base.Registry.Edad,
Base.Client.NIF,
Base.Registry.Procedency,
Base.Registry.DateRegistry,
Base.Registry.DateValidation,
Base.Registry.CodeSample,
Base.SnomedRegistry.Code,
Base.Sample.T
FROM Base.Registry,
Base.Client,
Base.SnomedRegistry,
Base.Sample
WHERE Base.Registry.CodeClient = Base.Client.CodeClient
AND Base.Registry.Registry = Base.SnomedRegistry.Registry
AND Base.Registry.CodeSample = Base.Sample.Sample
AND Base.Registry.DateRegistry BETWEEN '2012-10-26' AND '2012-12-31'
AND Base.SnomedRegistry.Code LIKE 'M8%%%3'
OR Base.SnomedRegistry.Code LIKE 'M8%%%2'
OR Base.SnomedRegistry.Code LIKE 'M8%%%6'
OR Base.SnomedRegistry.Code LIKE 'M8%%%9'
OR Base.SnomedRegistry.Code LIKE 'M9%%%2'
OR Base.SnomedRegistry.Code LIKE 'M9%%%3'
OR Base.SnomedRegistry.Code LIKE 'M9%%%6'
OR Base.SnomedRegistry.Code LIKE 'M9%%%9'
OR Base.SnomedRegistry.Code LIKE 'M69730'
OR Base.SnomedRegistry.Code LIKE 'M60760'
OR Base.SnomedRegistry.Code LIKE 'M74000'
OR Base.SnomedRegistry.Code LIKE 'M74007'
OR Base.SnomedRegistry.Code LIKE 'M74008'
LIMIT 0, 100
Я совершенно неопытный сейчас с SQL, поэтому каждый совет будет иметь в виду.
Обс: Извините за мой английский.
Вы должны круглые скобки в 'where', чтобы получить логику вы хотите. Однако вы должны исправить свой запрос, чтобы использовать правильный явный синтаксис 'join'. Простое правило: * Никогда * не используйте запятые в предложении 'FROM'. –
**% соответствует любому количеству символов, даже нулевым символам **, поэтому не нужно добавлять как 'M8 %%% 2' или использовать' _', который соответствует точно одному символу, например 'M8 ___ 2' – lad2025