Выберите cloumn из данного условия, который не является именем столбца - PullRequest
1 голос
/ 27 марта 2012

У меня есть таблица, которая имеет следующую структуру

Table1
itemName, codeA, codeB, codeC, codeD

Table2
purchaseDate, shopCode, itemCode

Таблица 2 itemCode - это код, соответствующий коду магазина

Например, у меня есть следующие предметы:

Table1
Item A, A1, B1, C1, D1
Item B, A2, B2, C2, D2

Table2 
2012-03-27 11:00:00, 1, A1
2012-03-27 11:00:00, 2, B2
2012-03-27 13:00:00, 4, D1

В таблице 2 shopCode (1-4) равен Таблице 1 (codeA-codeD), Как выбрать записи таблицы 2 вместе с именем элемента?

Ответы [ 2 ]

3 голосов
/ 27 марта 2012
SELECT t2.*, t1.itemName
from Table2 t2
INNER JOIN Table1 t1 ON
  (t2.shopCode = 1 AND t2.itemCode = t1.codeA) OR
  (t2.shopCode = 2 AND t2.itemCode = t1.codeB) OR
  (t2.shopCode = 3 AND t2.itemCode = t1.codeC) OR
  (t2.shopCode = 4 AND t2.itemCode = t1.codeD);

Демо здесь - http://sqlfiddle.com/#!2/773a4/2

3 голосов
/ 27 марта 2012
SELECT
    t1.itemName,
    t2.purchaseDate,
    t2.shopCode,
    t2.itemCode
FROM
    table1 t1 JOIN
    table2 t2 ON t2.itemCode IN (t1.codeA, t1.codeB, t1.codeC, t1.codeD)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...