SQL-запрос из двух таблиц в одну (это делается с помощью соединения?) - PullRequest
0 голосов
/ 25 августа 2011

У меня есть таблица с названием products, products имеет несколько полей, 2 из них имеют важное значение в этом вопросе, идентификатор столбца и столбец ProdDetail.

У меня есть другая таблица, назовем ее table2.В таблице 2 есть столбец идентификатора и столбец имени.

Я хочу выполнить запрос sql, который выполняет следующее:

insert into table3  products.ID and table2.ID 
where products.ProdDetail CONTAINS table2.Name

Я знаю, что этот код недопустим в выражении sql.Также я не могу использовать соединение, потому что products.ProdDetail содержит больше данных, чем просто table2.name, поэтому они не совпадают.

Ответы [ 4 ]

3 голосов
/ 25 августа 2011

Ты имеешь в виду что-то подобное?

INSERT  INTO table3 ( ProductID, Table2ID )
        SELECT  product.Id,
                table2.ID
        FROM    products
                INNER JOIN table2 ON products.ProdDetail LIKE CONCAT('%', table2.name, '%')
1 голос
/ 25 августа 2011

Я думаю , что это то, что вы хотите:

INSERT INTO Table3 (prod_id, table2_id)
SELECT
    P.id,
    T2.id
FROM
    Products P
INNER JOIN Table2 T2 ON
    P.ProdDetail LIKE '%' + T2.name + '%'

Просто имейте в виду, что если у вас есть имена таблиц 2, которые являются подстрока другого имени, вы собираетесь получить дубликаты / ошибочные данные. Например, если у вас есть имена Table2 «виджеты» и «виджеты foobar», и у вас есть описание продукта «Это виджеты foobar», то это связывает обе строки Table2 со строкой Product.

1 голос
/ 25 августа 2011
INSERT INTO
  table3
SELECT
  products.ID,
  table2.ID
FROM
  products
INNER JOIN
  table2
    ON products.ProdDetail LIKE '%' + table2.Name + '%'
1 голос
/ 25 августа 2011
INSERT INTO table3 (id, name)
SELECT
  p.id as ID
  , p.productDetail as name
FROM products p 
INNER JOIN table2 t2 ON (t2.id = p.id) 
      AND (p.productdetail LIKE CONCAT('%',t2.name,'%') 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...