Таблица соединения SQL с двумя ключевыми словами «ON»? - PullRequest
2 голосов
/ 15 июля 2010

У меня есть две таблицы tbl_a и tbl_b, и их поля

tbl_a
-----
a_id a_name a_surname a_c_id a_d_id

tbl_b
-----
b_id b_name b_phone b_c_id b_d_id

Я хочу объединить эти две таблицы следующим образом:

select *from tbl_a join tbl_b on tbl_a.a_c_id=tbl_b.b_c_id AND tbl_a.a_d_id=tbl_b.b_d_id where tbl_a.id>15;

Как видите, я хочу использоватьдва ключа для ключевого слова ON, в любом случае, чтобы сделать это?Спасибо за продвижение ...

Ответы [ 4 ]

3 голосов
/ 15 июля 2010

Ваш запрос правильный, нет необходимости вводить дополнительное ключевое слово On и ключевое слово для объединения двух разных столбцовПросто поставьте скобку, чтобы понять правильно.

select *from tbl_a join tbl_b on 
(
  tbl_a.a_c_id=tbl_b.b_c_id 
  AND 
  tbl_a.a_d_id=tbl_b.b_d_id 
)
where tbl_a.id>15;
1 голос
/ 15 июля 2010

Способ, которым вы его указали, должен работать нормально.

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

0 голосов
/ 15 июля 2010

работает нормально, но вместо длинного имени таблицы используется псевдоним

select * from tbl_a a 
         join tbl_b b on a.a_c_id=b.b_c_id AND a.a_d_id=b.b_d_id 
         where a.id>15;
0 голосов
/ 15 июля 2010

Sql сервер позволяет это.Я могу говорить за другие реализации.

...