Оператор SQL из двух таблиц - PullRequest
1 голос
/ 11 ноября 2008

Я хотел бы знать, если это возможно, выбрать определенные столбцы из одной таблицы, а другой столбец из второй таблицы, которые будут относиться к не импортированному столбцу в первой таблице. Я должен получить эти данные из доступа и не знаю, возможно ли это с помощью Access или SQL в целом.

Ответы [ 4 ]

6 голосов
/ 11 ноября 2008

Предполагая следующую структуру таблицы:

CREATE TABLE tbl_1 (
    pk_1 int,
    field_1 varchar(25),
    field_2 varchar(25)
);

CREATE TABLE tbl_2 (
    pk_2 int,
    fk_1 int,
    field_3 varchar(25),
    field_4 varchar(25)
);

Вы можете использовать следующее:

SELECT t1.field_1, t2.field_3
FROM tbl_1 t1
INNER JOIN tbl_2 t2 ON t1.pk_1 = t2.fk_1
WHERE t2.field_3 = "Some String"

Что касается публикации Билла, существует два способа создания JOIN в SQL-запросах:

  • Неявный - объединение создано с использованием предложение WHERE запроса с несколькими таблицами, указанными в предложении FROM

  • Явное - объединение создано с использованием соответствующий тип предложения JOIN (ВНУТРЕННИЙ, ЛЕВОЙ, ПРАВЫЙ, ПОЛНЫЙ)

Всегда рекомендуется использовать явный синтаксис JOIN, поскольку неявные объединения могут создавать проблемы, когда запрос становится более сложным.

Например, если позже вы добавите явное соединение к запросу, который уже использует неявное соединение с несколькими таблицами, на которые есть ссылка в предложении FROM, первая таблица, на которую есть ссылка в предложении FROM, не будет видима для таблицы, к которой явно присоединено.

2 голосов
/ 11 ноября 2008

То, что вы ищете, это СОЕДИНЕНИЯ:

http://en.wikipedia.org/wiki/Join_(SQL)

Вам нужны первичные ключи для указанных наборов данных и внешних ключей в первой таблице.

0 голосов
/ 11 ноября 2008

Но первичные ключи делают запрос более эффективным

0 голосов
/ 11 ноября 2008

Я не уверен на 100%, что понимаю ваш вопрос.

верно ли следующее:

Ваша первая таблица импортирована откуда-то еще. Вы импортируете только некоторые столбцы. Вы хотите создать запрос, который ссылается на столбец, который вы не импортировали.

Если это правда, это просто невозможно. Что касается обработчика запросов Access, то не импортированные столбцы не существуют.

Почему бы просто не импортировать их?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...