Во-первых, я ненавижу негативное подшучивание, которое иногда продолжается, но да, вам нужно получить больше знаний в SQL во время обучения. Посмотрите на реальные сценарии и на то, как люди предлагают разные решения.
Теперь к ВАШЕМУ вопросу. Во-первых, избавьтесь от старого стиля sql, где вы поместите все критерии соединения в предложение where. Приступайте к работе, зная правильные отношения между таблицами. Во-вторых, предложение WHERE должно основываться на ваших конкретных критериях - например, вы хотите получить файл 1. Из этого перейдите к другим таблицам. Мой личный стандарт кодирования SQL показывает сначала, какие критерии я хочу и из какой таблицы. Убедитесь, что индексы доступны для оптимизации запроса. Затем присоединитесь к другим таблицам, чтобы получить другие элементы, необходимые для завершения строки данных. (Хорошее использование табличных «псевдонимов» и поддерживайте его).
Во-первых, ваши основные критерии. Достаточно просто.
select
fn.FileNameID,
fn.FileName
from
FileName fn
where
fn.FileName = 'File1'
Оттуда, сделать присоединяется, чтобы получить следующие элементы информации из файла на клиентские отношения
select
fn.FileNameID,
fn.FileName,
c.clientID
from
FileName fn
JOIN File f
on fn.FileNameID = f.FileNameID
JOIN Client c
on f.JobID = c.JobID
where
fn.FileName = 'File1'
Обратите внимание на иерархическом отступ от имени файла в файл, а затем из файла клиента. .. вы можете визуально увидеть, как связаны таблицы. Затем просто возьмите свои другие столбцы, как вам нужно, и добавьте в свой список полей правильные псевдонимы.
Узнайте о [** SQL-соединениях **] (http://www.w3schools.com/sql/sql_join.asp). Вы можете использовать несколько соединений в запросе. Предоставление прямого ответа не принесет ничего хорошего в вашей карьере. Учитесь самостоятельно, улучшайте свои навыки. –
@RagingBull Итак, вы говорите, что этот запрос слишком широк? – Strawberry
@Strawberry: Вам не кажется, что лучше показать путь вместо того, чтобы дать прямое решение для таких простых вопросов? FYI, я не голосовал, чтобы закрыть вопрос. –