Перейти к содержанию
cha0s

Помогите составить SQL запрос

Рекомендуемые сообщения

Нужно выбирать данные из 2-х таблиц одновременно и собрать в 1 таблицу.

 

Имеется

Table1 с полями Product_id, customer_group_id

Table2 с полями Product_id, model

 

Надо чтоб получилось из этого

Table3 с полями Product_id, customer_group_id, model

 

*Product_id повторяется в двух таблицах значения его одинаковые, поэтому один надо откинуть любой. То есть мне надо такой-же product_id как в первый таблицы найти во 2-ой и выбрать только колонку model его...

 

Я знаю что как-то колдуют несколькими SELECT'ami вложенными, или JOIN применяют, можно пример как это будет выглядеть?

 

Заранее спасибо.

 

я погуглил примеры, что-то как-то слишком заплетно показалось)))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты


$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "table1 t1 LEFT JOIN " . DB_PREFIX . "table2 t2 ON (t1.product_id=t2.product_id)");

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо понял! хорошо а если у обоих таблиц целая куча полей? и надо только эти поля? Таблица1 имеет вид Product_id, customer_group_id,xxxx,xxxx,xxxx,xxxx и Таблица2 имеет вид Product_id, model,yyyy,yyyy,yyyy,yyyy и надо их слить в один только с нужными полями? Чтоб получили мы Таблицу3 Product_id, customer_group_id, model, без всех других полей которые не надо, тут уже надо два SELECT'a юзать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Осторожно! Я код поменял.

$query = $this->db->query("SELECT t1.Product_id, t1.customer_group_id, t2.model FROM " . DB_PREFIX . "table1 t1 LEFT JOIN " . DB_PREFIX . "table2 t2 ON (t1.product_id=t2.product_id)");
Нужно просто вместо звёздочки указать какие поля вы хотите выбрать, с учётом принадлежности к таблице.
  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вот я докрас так и пробовал)) поэтому задал вопрос, ошибка :)

 

Notice: Undefined index: moded in ..../catalog/controller/product/product.php on line 222Notice: Error: Column 'product_id' in field list is ambiguous
Error No: 1052
SELECT product_id, customer_group_id, model FROM product_special t1 LEFT JOIN product t2 ON (t1.product_id=t2.product_id) in ..../system/database/mysql.php on line 49

 

Не забываем говорить спасибо плюсиками не забываем  :oops:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У вас опечатка в запросе - moded  вместо model и прочитайте мой обновлённый код. Я его подправил

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Все большое спасибо! разобраться!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Название курса: SQL для ленивых.

 

Неленивые и умные изучают учебники http://www.sql.ru/docs/sql/u_sql/

А не выпрашивают все сделать за них.

 

Извините за грубость, но как-то стыдно вопрошать на форуме, когда в сети по SQL тучи учебников.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.