Моя конечная цель ... SELECT
все поля из qry1
по строкам, где или домашний телефон, мобильный телефон, или работа матч телефон tbl2
Как выполнить JOIN, если выполнено одно из нескольких условий?
Это мой текущий синтаксис SQL, который «не удается.» По ошибке я имею в виду, что он не закончил выполнение через 10-15 минут, в то время как каждый человек присоединяется к каждому (независимо) через минуту или две части.
SELECT qry1.* FROM qry1 INNER JOIN tbl2 ON ((qry1.CellPhone = tbl2.CellPhone) OR (qry1.HomePhone = tbl2.HomePhone) OR (qry1.WorkPhone = tbl2.WorkPhone));
Вопросы: Существуют ли ошибки в моем синтаксисе SQL? Есть ли лучший способ выполнить мою задачу? Будет ли для меня больше смысла просто запускать 3 (Home, work, cell) JOIN запросы независимо, UNION их, а затем дедупировать, если необходимо?
В вашем синтаксисе SQL нет ошибок; запрос не будет выполняться, если бы они были. Насколько велики, грубо говоря, таблицы? Сколько строк в каждом и типичный размер строки. И примерно, сколько строк в результирующем наборе?Это в основном любопытство - но 1-2 минуты за отдельный запрос предполагает, что таблицы должны быть довольно большими. –
В Excel (формат xlsx) большая таблица, загружающая qry1, составляет 80 МБ, tbl2 - 50 МБ. tbl2 ужасно широк. – ChrisG