2013-12-17 3 views
0

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

Идея состоит в том, чтобы использовать таблицу «Запросы в ящиках» на основе значение в предложении WHERE и использовать это значение для извлечения данных из таблицы «Коробки». Я был бы признателен, если бы кто-нибудь мог указать на ошибку моего новичка. Я хотел бы добавить, что я унаследовал этот db и не имею возможности изменить его. Большое спасибо

My db setup выглядит следующим образом.

просит Коробки

Запрос нет

Box

Коробки

Box

CustRef

sql = "SELECT [Request Boxes].[Request no], [Request Boxes].Box, Boxes.Box, Boxes.CustRef " & 
        "FROM [Request Boxes], Boxes WHERE [Request Boxes].[Request no] = '" & item & "'" 

ОБНОВЛЕНО КОД:

sql = "SELECT [Request Boxes].[Request no], [Request Boxes].Box, Boxes.Box, Boxes.CustRef " & 
        "FROM [Request Boxes] INNER JOIN Boxes ON [Request Boxes].Box = Boxes.Box " & 
        "WHERE ((([Request Boxes].[Request no]) = '" & item & "')" & 
        "AND ([Request Boxes].[Customer] = '" & customer2 & "') AND (Boxes.Status = '" & status & "'))" 

ответ

1

Вы присоединяетесь две таблицы с п FROM ...

FROM [Request Boxes], Boxes 

Это означает, что вы получите все Boxes строки, присоединенные к Request Boxes строка, которую вы правильно выбираете. Для того, чтобы выбрать сращивание Boxes строку, добавьте ON статью в FROM ...

FROM [Request Boxes], Boxes ON [Request Boxes].[Box] = [Boxes].[Box] 

Это гарантирует, что только соответствие Boxes ряд прикреплен к [Request Boxes] ряду.

+0

Брайан, только 1 проблема. Запрос не работает из-за этой строки (Boxes.Status = '"& status &"') в моем обновленном коде. Если я удаляю строку, тогда она отображается нормально. Я отлаживаю, и я знаю, что правильные значения передаются. Где я ошибся. Спасибо – user1532468

+0

Один маленький совет, используя Sql Queries в vb.net или C#, не так уж хорош. Всегда лучше записывать эти запросы в хранимые процедуры SQL Server и вызывать их из вашего кода. – Hoh

+0

@ user1532468, является ли ваш статус номером? Если это так, вам не нужны одиночные кавычки. –

Смежные вопросы