Мне было предложено извлечь данные из двух таблиц, но я не могу понять это и немного по голове в этот момент и действительно может использовать некоторую помощь.Как получить данные из двух таблиц SQL Server без отношения?
Две таблицы, не совсем родственные/дочерние отношения (по крайней мере, в моем ограниченном понимании), и никаких первичных ключей, которые я вижу (не устанавливал БД, поэтому, если вы думаете, что это поможет добавить, сказать так).
Таблица № 1 имеет имя сервера, имя общего ресурса, путь к доле, владелец доли и разрешения. Имена серверов, имена общих ресурсов, владелец и разрешения могут быть дублирующими. Сочетание имени и пути сервера является уникальным для каждой записи (должен ли это быть составной ключ?). Контуры могут быть вложенными (D: \ Папка1 \ это путь, а также D: \ Папка1 \ Folder2; смотри ниже, например)
Таблица № 1 - Доли
Servername ShareName Path Owner Permissions
-----------------------------------------------------------------
Server01 Share01 D:\Folder1 jsmith Everyone
Server01 Share02 D:\Folder2 jsmith jsmith,ssmith
Server01 Share03 D:\Folder2\A jdoe jdoe,jsmith
Server02 Share01 E:\Folder1 ksmith ksmith,jdoe
Server03 Share01 G:\Folder1 jsmith Everyone
Server03 Share02 C:\Folder1 jsmith Everyone
Таблица №2 представляет собой разбивку файлов, перечисленных на этих серверах. Этот список также может содержать пути к файлам, которые не указаны в таблице №1. Каждая запись файла уникальна, но имена файлов/пути/расширение/изменение даты сами по себе не являются.
Таблица № 2 - FileInfo
Hostname Filename FolderPath FileExtension LastModified
-----------------------------------------------------------------
Server01 FileA.txt D:\Folder1 txt 1/1/1900
Server01 FileB.log D:\Folder2 log 2/1/2000
Server01 FileC.ini D:\Folder2\A ini 3/1/2001
Server02 FileD.xls E:\Folder1 xls 3/2/2010
Server03 FileE.exe G:\Folder1 exe 3/2/2011
Server03 FileF.ppt C:\Folder1 ppt 5/10/1998
Из этих двух я хотел бы иметь возможность запрашивать и получать информацию от обоих. Например, для каждого пути, указанного в таблице # 1, какая самая старая дата LastModified для всех файлов этого пути в таблице # 2.
В таблице №1 имеется ~ 160 тыс. Строк и 110 млн строк в таблице # 2, поэтому я не уверен, что это заставляет какой-либо конкретный подход?
SQL «первичный ключ» является просто синонимом «unique not null» (и означает «superkey») в отношении ограничения. Любая комбинация столбцов, содержащих уникальную комбинацию, также уникальна. Поскольку путь уникален, он является ключом кандидата сам по себе. (Предполагая, что нет лишних суперклеев.) Хотя вы говорите (имя файла, FolderPath, FileExtension, LastModified) не уникально, но каждая строка является недостаточной для определения ключей кандидата FileInfo (неприводимых суперклеев). – philipxy