[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: INSERT INTO выборки 2х таблиц
S-17
Всем привет! Помогите пожалуйста, задача такова:
Есть две таблицы, что-то вроде соответствия грубо говоря поставщика и продавца.Товар один и тот же, только у обоих артикулы разные.
В Таблице1 поле `kod`, в Таблице2 `kod`(такой же как и в таб.1) и соответствующий ему -`id_good`+ `color`,`size1`,`size2`

1) Нужно создать таблицу
2) Из таблицы1 сравнивая с таб2. по полю `kod`, брать поля и переносить в новую таблицу
id_good=>parent
color=>relation
size1=>relation1
size2=>relation2
3) добавить в новую таблицу поле`active`
и во всех строках прописать значение 1


Запутанно как-то вышло, итак,

$query = " CREATE TABLE `новая таблица`;

тут будут еще запросы.
$q = explode(";", $query);
foreach ($q as $v) {
mysql_query($v);


$q, foreach я правильно использую? чтобы запросы исполнялись.
Спасибо всем, кто не прошел мимо!



Спустя 2 часа, 42 минуты, 40 секунд (28.06.2012 - 16:28) S-17 написал(а):
С
$query = "          
тут будут еще запросы. ";
$q = explode(";", $query);
foreach ($q as $v) {
mysql_query($v);

вопросы снимаю, работает отлично!

Попробую еще разок разжевать, так как задачи "горит ярким пламенем".

Есть данные от поставщика(штрих-код) в таблице номер 1 с полем `kod`
Есть наша таблица(2) так же с полем `kod` которое соответствует полю `kod.таблицы1`, там же в таблице 2 есть еще три четыре которые мне нужны.

В итоге, нужно запросом к базе сверить `kod.таблицы1` с `kod.таблица2` и при нахождении равных(одинаковых штрих кодов), отправлять других четырех полей этой строки в другую таблицу(3), при этом поля в другой таблице(3) называются по другому.

(Слева) из таблицы2 переносим в таблицу3(справа)
id_good=>parent
color=>relation
size1=>relation1
size2=>relation2

Помогите пожалуйста!

Спустя 41 минута, 22 секунды (28.06.2012 - 17:10) rooor написал(а):
делай выборку нужных полей из двух таблиц и вставляй в третью, ничего сложного
в запросе используй JOIN, чтобы выбрать те записи, в которых поле kod совпадает

Спустя 2 минуты, 9 секунд (28.06.2012 - 17:12) S-17 написал(а):
это без вариантов?

Спустя 4 минуты, 18 секунд (28.06.2012 - 17:16) rooor написал(а):
а какие варианты нужны? готовый код? smile.gif

Спустя 2 минуты, 38 секунд (28.06.2012 - 17:19) S-17 написал(а):
я в этой ветке уже писал про JOIN
не могу в него врубится, особенно в ставку `полей` в начале кода.
Если не сложно хоть примерно набросайте, а я уже постараюсь довести до ума.
Спасибо огромное!

Спустя 12 минут, 25 секунд (28.06.2012 - 17:31) rooor написал(а):
вариант 1:
SELECT a.`one`, a.`two` FROM `table1` a, `table2` b WHERE a.`kod` IN(b.`kod`)

вариант 2:
SELECT a.`one`, a.`two` FROM `table1` a, `table2` b WHERE a.`kod`= b.`kod`

Спустя 12 минут, 2 секунды (28.06.2012 - 17:43) S-17 написал(а):
так а JOIN в какое место ставить нужно?))

Спустя 4 часа, 38 минут, 29 секунд (28.06.2012 - 22:22) S-17 написал(а):
Мне вот что предложили, но я не пойму, это все нужно вставить в один php файл?
Цитата
2)я бы так сделал:
INSERT INTO `новая таблица` SELECT id_good,color,size1,size2 FROM таблицы1,таблицы2 WHERE таблицы1.`kod`>таблицы2.`kod`;


$sql[]="select 1";
$sql[]="select 2";
$sql[]="select 3";
foreach($sql as $val){
$result = mysql_query($val);
$row = mysql_fetch_row($result);
print_r($row);
}

Выполнить несколько запросов:
/*пример взят с сайта mysql.com// connect to server with the CLIENT_MULTI_STATEMENTS option */
if (mysql_real_connect (mysql, host_name, user_name, password,
    db_name, port_num, socket_name, CLIENT_MULTI_STATEMENTS) == NULL)
{
  printf("mysql_real_connect() failed\n");
  mysql_close(mysql);
  exit(1);
}

/* execute multiple statements */
status = mysql_query(mysql,
                    "DROP TABLE IF EXISTS test_table;\
                      CREATE TABLE test_table(id INT);\
                      INSERT INTO test_table VALUES(10);\
                      UPDATE test_table SET id=20 WHERE id=10;\
                      SELECT * FROM test_table;\
                      DROP TABLE test_table"
);
if (status)
{
  printf("Could not execute statement(s)");
  mysql_close(mysql);
  exit(0);
}

/* process each statement result */
do {
  /* did current statement return data? */
  result = mysql_store_result(mysql);
  if (result)
  {
    /* yes; process rows and free the result set */
    process_result_set(mysql, result);
    mysql_free_result(result);
  }
  else          /* no result set or error */
  {
    if (mysql_field_count(mysql) == 0)
    {
      printf("%lld rows affected\n",
            mysql_affected_rows(mysql));
    }
    else  /* some error occurred */
    {
      printf("Could not retrieve result set\n");
      break;
    }
  }

  /* more results? -1 = no, >0 = error, 0 = yes (keep looping) */
  if ((status = mysql_next_result(mysql)) > 0)
    printf("Could not execute statement\n");
} while (status == 0);

mysql_close(mysql);


Спустя 3 часа, 8 минут, 1 секунда (29.06.2012 - 01:30) S-17 написал(а):
вот что вышло...но не срабатывает(((((

<?php
//подключаемся
require_once(dirname(__FILE__)."/../include/database7387890.php");
mysql_connect($db['host'].":".$db['port'],$db['user'],$db['password']);
mysql_select_db($db['db']);
print ("Соединение установлено!");

$query = "CREATE TABLE `catalog_relations2` LIKE `catalog_relations`;
TRUNCATE TABLE `catalog_relations2`;
INSERT INTO `catalog_relations2`
SELECT still_park_mapping.id_good,still_park_mapping.color,still_park_mapping.size1,still_park_mapping.size2
FROM `still_park_mapping`, `still_park` WHERE still_park.`kod`= still_park_mapping.`kod`);
"
;

$q = explode(";", $query);
foreach ($q as $v) {
mysql_query($v);
}
print ("SUCCES!");
?>


что я намудрил?((((

Спустя 8 часов, 7 минут, 19 секунд (29.06.2012 - 09:37) S-17 написал(а):
Внес немного изменений, таблица убивается, создается и тд...а вставка не происходит
<?php
//подключаемся
require_once(dirname(__FILE__)."/../include/database9860998.php");
mysql_connect($db['host'].":".$db['port'],$db['user'],$db['password']);
mysql_select_db($db['db']);
print ("Соединение установлено!");

$query = " DROP TABLE IF EXISTS `catalog_relations2`;
CREATE TABLE `catalog_relations2` LIKE `catalog_relations`;
TRUNCATE TABLE `catalog_relations2`;
INSERT INTO `catalog_relations2`
SELECT still_park_mapping.id_good,still_park_mapping.color,still_park_mapping.size1,still_park_mapping.size2
FROM `still_park_mapping`, `still_park` WHERE still_park.`kod`= still_park_mapping.`kod`);
"
;

$q = explode(";", $query);
foreach ($q as $v) {
mysql_query($v);
}
print ("SUCCESS!");
?>

Спустя 35 минут, 53 секунды (29.06.2012 - 10:13) S-17 написал(а):
вообщем, как мне кажется, не хватает задать как я писал выше, что куда вставлять
id_good=>parent
color=>relation
size1=>relation1
size2=>relation2

Спустя 44 минуты, 6 секунд (29.06.2012 - 10:57) rooor написал(а):
мож так? не вникал)
$sql = mysql_query("SELECT a.`id_good`, a.`color`, a.`size1`, a.`size2` 
FROM `catalog_relations` a, `still_park` b
WHERE b.`kod`= a.`kod`"
)
if(mysql_num_rows($sql))
{
while($res = mysql_fetch_assoc($sql))
{
mysql_query("INSERT INTO `catalog_relations2`
SET
`parent` = '"
.$res['id_good']."',
`relation` = '"
.$res['color']."',
`relation1` = '"
.$res['size1']."',
`relation2` = '"
.$res['size2']."',
`active` = 1
"
);
}
}
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.