2011-01-15 2 views
13

У меня возникла проблема в совместных двух подзапросах в MySQL, например.Присоединиться к двум подзапросам в MySQL

(select * from table1 where id = 1 group by f1) a1 
join 
(select * from table2 where id = 2 group by f2) a2 ON a1.f3 = a2.f3; 

ERROR 1064 (42000): У вас возникла ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с 'join (выберите * из таблицы1, где id = 2)' в строке 1

Недействителен ли мой синтаксис?

+0

что вы хотите сделать? – Nishant

+0

Извините за мой упрощенный пример, я обновил SQL. – Howard

+0

@Howard, если вы когда-нибудь вернетесь к SO, не могли бы вы пересмотреть ответы и потенциально изменить принятый ответ, если хотите? Благодарю. –

ответ

3

Проверьте некоторые примеры

SELECT * FROM table1, table2; 

SELECT * FROM table1 INNER JOIN table2 ON table1.id=table2.id; 

SELECT * FROM table1 LEFT JOIN table2 ON table1.id=table2.id; 

SELECT * FROM table1 LEFT JOIN table2 USING (id); 
+0

Большое спасибо за этот ответ. Я работаю в поисковых системах на несколько дней безрезультатно, пока не ударил этот вопрос. – alexy13

+7

Это не отвечает на вопрос, как написано. Этот вопрос соответствует поиску google для объединения двух подзапросов. Следовательно, ответ @ a_horse_with_no_name действительно подходит лучше. –

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