Jump to content
Sign in to follow this  
cha0s

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

Recommended Posts

Нужно выбирать данные из 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 применяют, можно пример как это будет выглядеть?

 

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

 

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

Share this post


Link to post
Share on other sites


$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

Share this post


Link to post
Share on other sites

Спасибо понял! хорошо а если у обоих таблиц целая куча полей? и надо только эти поля? Таблица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 юзать?

Share this post


Link to post
Share on other sites

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

$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

Share this post


Link to post
Share on other sites

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

 

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:

Share this post


Link to post
Share on other sites

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

  • +1 1

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

 

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

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

 

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.