Здравствуйте, я в настоящее время пытаюсь объединить 3 типа таблиц. У меня есть способ сделать это с 2, которые имеют одинаковые значения, но что происходит, когда вы хотите, чтобы третья таблица имела тот же pk, что и второй, но не первый? И я ударил гигантскую кирпичную стену ... как я могу решить эту проблему?INNER, OUTER OR RIGHT JOIN с 3 таблицами, где один имеет тот же PK, что и первый, но 1-й не
SELECT xxx.orderid, xxx.ordertime,xxx2.produdct, xxx2.product type, xxx3.priscut xx3.pricename FROM xxx
INNER JOIN xxx2 ON xxx.orderid= xxx2.orderid
RIGHT JOIN xxx3 ON xxx2.productid = xx3.productid;
наилучшими пожеланиями, Майк
Я не совсем уверен, почему вы должны использовать 'правую join' (попробуйте' внутренний join' или ее 'left join' в зависимости от того, что вы хотите), но ваш код будет работать - почему вы сомневаетесь в этом? Вы можете присоединить столько таблиц, сколько хотите, при любом условии, которое вам нужно, они не должны быть напрямую связаны с первой таблицей (и на самом деле в большинстве случаев ее нет). – Solarflare
хорошо, когда он говорит, что у меня есть ошибка, на последней строке ... почему я пытаюсь присоединиться к предыдущему соединению .. :( – MikeBroski
Итак, стандартный вопрос: что вы получаете и чего ожидаете? (И добавьте запятая после 'priscut' в первой строке и, конечно,' xxx3' в последнем объединении вместо 'xx3' - но я думаю, что это просто заполнители в любом случае). Знаете ли вы, что такое« правильное соединение »? Попробуйте нормальный' join' (без «права»), я предполагаю, что это то, чего вы ожидаете. – Solarflare