Я не слишком хорошо разбираюсь в SQL и знаю, что, вероятно, есть гораздо более эффективный способ выполнить то, что я здесь делаю, поэтому любая помощь будет высоко ценится. Заранее спасибо за ваш вклад!
Я пишу короткую программу для местной средней школы. В этой школе юниоры и пенсионеры, имеющие водительские права и автомобили, могут поехать в школу, а не ездить на автобусе. Каждому драйверу назначается ровно один пробел, и их DLN используется в качестве первичного ключа таблицы драйверов. Марки, модели и цвета автомобилей хранятся в отдельной таблице автомобилей, связанной с таблицей водителей в поле Номерной знак.
Моя идея состоит в том, чтобы в главном графическом интерфейсе программы было одно окно поиска, в котором школьный секретарь мог бы ввести, кого / что она ищет, и вывести список результатов. Дело в том, что она может набирать номерной знак, цвет машины, марку и модель, имя водителя, DLN ученика или пробел. Как программист, я не знаю, что именно она ищет, поэтому мне на ум приходит несколько вариантов сборки, чтобы быть уверенным, что я проверяю везде соответствие:
1) преформ пару
SELECT * FROM [tablename]
SQL-операторы, по одному на таблицу, и объединение результатов в массивы в моей программе, затем поиск по массивам по одному элементу за раз с помощью регулярных выражений, поиск подходящего шаблона, похожего на поисковый запрос, и, если я его найду, добавьте вся запись, в которой есть соответствие массиву результатов для отображения на экране в конце поиска.
2) возьмите в программу все, что она ищет, в качестве инструмента для масштабирования и подготовьте несколько операторов выбора, например
SELECT * FROM DRIVERS WHERE DLN = $Search_Variable
SELECT * FROM DRIVERS WHERE First_Name = $Search_Variable
SELECT * FROM CARS WHERE LICENSE = $Search_Variable
и т. Д. Для каждого атрибута каждой таблицы, вставка результатов в массив результатов, отображаемый на экране после завершения поиска.
Есть ли более понятный способ выполнить этот поиск, не заставляя ее указывать именно то, что она ищет? Возможно, какой-то SQL-оператор, которого я никогда раньше не видел?