Итак, у меня есть таблица с кучей разных адресов в ней. Мне нужна процедура, которая выберет адреса в этой таблице, которые находятся в пределах указанного расстояния в милях от переданных значений широты и долготы.
Итак, пример моей таблицы: | id | Имя | + ---- + ------- + | 1 | Крис | | 2 | Джо | | 3 | Джек | + ---- + ------- + Зачисление + --------------- + ------------ + ----- ------ + ---...
Учитывая следующие таблицы:
Студент
+----+-------+
| id | Name |
+----+-------+
| 1 | Chris |
| 2 | Joe |
| 3 | Jack |
+----+-------+
Зачисление
+---------------+------------+-----------+----------+
| enrollment_id | student_id | course_id | complete |
+---------------+------------+-----------+----------+
| 1 | 1 | 55 | true |
| 2 | 1 | 66 | true |
| 3 | 1 | 77 | true |
| 4 | 2 | 55 | true |
| 5 | 2 | 66 | false |
| 6 | 3 | 55 | false |
| 7 | 3 | 66 | true |
+---------------+------------+-----------+----------+
Я бы хотел следующее
+----+-------+-----------+-----------+-----------+
| id | Name | Course 55 | Course 66 | Course 77 |
+----+-------+-----------+-----------+-----------+
| 1 | Chris | true | true | true |
| 2 | Joe | true | false | NULL |
| 3 | Jack | false | true | NULL |
+----+-------+-----------+-----------+-----------+
Примечание 1: Я знаю, что mysql может у меня нет динамических столбцов (поправьте меня, если я ошибаюсь!), поэтому я доволен запросом, начинающимся как:
SELECT id, name, course_55, course_66, course_77 etc...
Я доволен этим, потому что существует фиксированное количество курсов (4, если быть точным). В идеале Я бы хотел, чтобы он был динамичным; то есть не нужно вручную писать каждый курс в предложении SELECT.
Примечание 2: Для этого нужен mysql pure - я не хочу прибегать к PHP.
В настоящее время база данных насчитывает более 10000 студентов с 10000+ * 4 зачислениями (так как есть ровно 4 курса, и каждый студент проходит все 4 модуля).
Примечание 3: Student.user_id проиндексирован, как и enrollment.enrollment_id, enrollment.student_id и enrollment.course_id.