2013-04-20 3 views
0

У меня есть «пользователей 'table, a' предлагает 'table, а также соединение' * users_offers * 'с идентификаторами пользователя и идентификаторами доступа.ВЫБОР данных с первичными ключами из другой таблицы?

Как выбрать каждое предложение от предложений, которое принадлежит определенному пользователю?

Я мог бы найти решение (ниже), которое фактически начнет выбирать данные из таблицы соединений, а затем просто присоединяется к столбцам предложения, но результат также содержит столбцы соединения.

SELECT * 
FROM users_offers INNER JOIN offers ON users_offers.offerID = offers.ID 
WHERE userID = 1 

Есть какое-либо решение, которое начинает выбор с предложениями?

+0

Вместо выбора * выберите только нужные столбцы. –

ответ

2

Использование SQL Alias:

SELECT o.* 
FROM users_offers AS uo 
INNER JOIN offers AS o ON uo.offerID = o.ID 
WHERE uo.userID = 1 

Объяснение:

FROM users_offers AS uo устанавливает новый псевдоним под названием "ио" указывает на [users_offers] таблицы. То же самое происходит и для offers AS o. Эти псевдонимы могут использоваться в других частях вашего оператора SQL.

+0

Эй, спасибо. На самом деле я мог бы опустить псевдоним users_offers, только «o» кажется достаточно. – Geri

+0

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

+0

Я нахожусь на ранней стадии сложности, поэтому такие соображения сейчас на меня наводняют. Еще раз спасибо, пощадил мне часы Гуглинга. : D – Geri

0
SELECT offers_alias.* 
FROM users_offers 
INNER JOIN offers AS offers_alias ON users_offers.offerID = offers_alias.ID 
WHERE users_offers.userID = 1 
Смежные вопросы