Мне просто интересно. Если у меня есть две таблицы, скажем, Клиенты и Заказы. Клиенты имеют уникальный и первичный ключ ID_Client. У ордеров также есть поле ID_Client и отношение для поддержания целостности таблицы клиента по полю ID_Client.Просто интересно узнать о SQL-соединениях
Так что, когда я хочу присоединиться обе таблицы я сделать:
SELECT
Orders.*, Clients.Name
FROM
Orders
INNER JOIN
Clients ON Clients.ID_Client = Orders.ID_Client
Так что, если я взял работу, чтобы создать первичный ключ, а также связь между таблицами,
Есть ли причина, почему Мне нужно явно включить объединенные столбцы в оговорку on?
Почему я не могу сделать что-то вроде:
SELECT
Orders.*, Clients.Name
FROM
Orders
INNER JOIN
Clients
Так SQL должны знать, какие столбцы связаны обе таблицы ...
Почему я не могу написать «Получите записи, которые я хочу»? –
Да потому, что если sql всегда просто предполагал, что столбцы внешнего ключа используют в качестве предикатов соединения, это не позволит гибкости, если вы по какой-то причине хотите присоединиться к другим столбцам. Определение отношений - это НЕ о том, чтобы сделать вашу жизнь проще, как разработчик, а именно для поддержания целостности данных. –
@Tom: Было бы хорошо, когда вы впервые напишите этот sql. это было бы ** HELL **, когда кто-то еще должен прочитать это через 18 месяцев, а sql содержит 10 таблиц, и он должен проверить отношения всех из них, чтобы узнать, что случилось с sql. –