Это не имеет большого значения, оба правильные. Мое предпочтение - второе.
Мои предпочтения основаны на идее, что таблица BBB - это таблица, которую я добавляю в набор результатов, а работа под рукой связывает столбцы (выражения) из новой таблицы BBB с другими столбцами уже в наборе результатов , Это может иметь больше смысла в другом примере:
SELECT ...
FROM AAA a
JOIN BBB b ON (b.AAA_ID = a.ID)
JOIN CC c ON (c.AAA_ID = b.AAA_ID AND UPPER(c.FEE) IN ('FI','FO'))
JOIN DDD d ON (d.CC_ID = c.ID AND LEFT(d.DAH,2) = c.FEE)
Да, это arbitarily сложный пример, но иногда реальный код делает это получить сложнее. При ссылке на несколько предикатов в условии соединения я считаю полезным, когда каждый предикат ссылается сначала на (слева) выражения из недавно присоединившейся таблицы.
Существуют и другие шаблоны, которые также помогают, например, когда основным ключом каждой таблицы является один столбец с именем «ID», а столбцы внешнего ключа обычно называются PARENTTABLE_ID, так что когда я вижу конструкцию типа a. ID = b.ID, то, что я вижу, является шаблоном для первичного ключа, связанного с первичным ключом (отношение «один к одному», которое не является нормативным паттерном). И когда я вижу b.FOREIGN_ID = c.FOREIGN_ID, то, что я вижу, является внешним ключом, который соединяется с внешним ключом. Опять же, не обычный шаблон, указывающий на это, может быть соединение «многие-ко-многим», или, возможно, сочетание быстрого доступа для производительности. Обычный шаблон, который я ищу в соединении parent-child, похож на child.PARENT_ID = parent.ID
Эти шаблоны неправильные или неправильные, только предпочтение. Я нахожу, что эти шаблоны не делают код, который выглядит правильно, но делает код «странным».
А также просто бросить это здесь ... как насчет SELECT * FROM AAA, BBB WHERE AAA.ID = BBB.ID – Travis
T Pops Я не рекомендую никому использовать этот синтаксис. Он устарел в течение 17 лет и гораздо более подвержен ошибкам (случайные кросс-соединения), и их сложнее понять и поддерживать. – HLGEM
Также невозможно выполнить определенные виды сложных объединений, не используя фактические статьи присоединения –