我有一张桌子,结构如下

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记录和项目名称?

最佳答案

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

关于mysql - 从给定条件中选择一个不是列名的列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9883758/

10-16 08:21