SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 20.05.2013 16:19:45

dead_eyes
Участник
Зарегистрирован: 20.05.2013
Сообщений: 5

Объединение таблиц

Привет! Например, у меня есть 2 таблицы и в ней есть данные колонки:

табл1        табл2
country|    name|
Страна1    Запись1
Страна2    Запись2
Страна3    Запись3
               Запись4
В результате я хочу создать третью таблицу и занести в неё  следущее:

Запись1 - Страна1
Запись1 - Страна2
Запись1 - Страна3

Запись2 - Страна1
Запись2 - Страна2
Запись2 - Страна3

Помогите пожалуйста составить SQL запрос.

Неактивен

 

#2 20.05.2013 17:54:07

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Объединение таблиц

Код:

mysql> create table t_6657_t1(country varchar(255));
Query OK, 0 rows affected (0.11 sec)

mysql> create table t_6657_t2(name varchar(255));
Query OK, 0 rows affected (0.10 sec)

mysql> insert into t_6657_t1(country) values('Страна1'), ('Страна2'),('Страна3');
Query OK, 3 rows affected, 3 warnings (0.00 sec)
Records: 3  Duplicates: 0  Warnings: 0

mysql> insert into t_6657_t2(name) values('Запись1'), ('Запись2'),('Запись3'),('Запись4');
Query OK, 4 rows affected, 4 warnings (0.00 sec)
Records: 4  Duplicates: 0  Warnings: 0

mysql> create table t_6657_t3(val varchar(255)) charset=utf8;
Query OK, 0 rows affected (0.21 sec)

mysql> insert into t_6657_t3(val) select concat(t2.name, ' - ', t1.country) FROM t_6657_t1 as t1, t_6657_t2 as t2 WHERE t2.name in ('Запись1', 'Запись2');
Query OK, 6 rows affected (0.00 sec)
Records: 6  Duplicates: 0  Warnings: 0

mysql> select * from t_6657_t3;
+-------------------------------+
| val                           |
+-------------------------------+
| Запись1 - Страна1 |
| Запись1 - Страна2 |
| Запись1 - Страна3 |
| Запись2 - Страна1 |
| Запись2 - Страна2 |
| Запись2 - Страна3 |
+-------------------------------+
6 rows in set (0.00 sec)

Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#3 20.05.2013 18:51:14

dead_eyes
Участник
Зарегистрирован: 20.05.2013
Сообщений: 5

Re: Объединение таблиц

точно, спасибо.

Неактивен

 

#4 23.06.2013 12:53:14

dead_eyes
Участник
Зарегистрирован: 20.05.2013
Сообщений: 5

Re: Объединение таблиц

Вот ещё. есть таблица артистов и стран, надо что бы каждый артист соответствовал каждой стране . Например
artist_id|country_id
    1           1
    1           2
    1           3
    1           4
и т.д
Написал INSERT INTO temp(artist_id,country_id) SELECT artist.id,country.id FROM artist,country WHERE artist.id IN(country.id)
вставляет:
artist_id|country_id
    1           1
    2           2

Отредактированно dead_eyes (23.06.2013 14:25:49)

Неактивен

 

#5 23.06.2013 14:33:59

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Объединение таблиц

INSERT INTO temp(artist_id,country_id) SELECT artist.id,country.id FROM artist,country;

Неактивен

 

#6 23.06.2013 14:51:42

dead_eyes
Участник
Зарегистрирован: 20.05.2013
Сообщений: 5

Re: Объединение таблиц

ммда) спасибо.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson