mysql IF EXISTS

cos*_*osy 0 php mysql entity-attribute-value

我有这张桌子

UMS

id_attribute    value   order
1                MB      1
1                Gb      2
1                TB      3
...
Run Code Online (Sandbox Code Playgroud)

和这张桌子

ATTRIBUTE_VALUE
id    id_attribute          value  name     ums
 1         1                 50     hdd     GB
 2         1                 100    hdd     TB
 3         2                 15.00  price   NULL
Run Code Online (Sandbox Code Playgroud)

我想从ATTRIBUTE_VALUE中选择,其中id_attribute = 1并且如果存在(UMS.value = ATTRIBUTE_VALUE.ums)则按UMS.order结束,如果按ATTRIBUTE_VALUE.value分组

输出示例:

50 GB
100 Tb

   and must to appear 
    15.00   !!! here is the problem because in my UMS table i don't have UMS for price

    but it doesn't appear
Run Code Online (Sandbox Code Playgroud)

Mar*_*ers 6

澄清问题后更新 - 尝试这样的事情:

SELECT T1.*
FROM ATTRIBUTE_VALUE T1
LEFT JOIN UMS T2
ON T1.id_attribute = T2.id_attribute AND T1.ums = T2.value
ORDER BY T2.order, T1.value
Run Code Online (Sandbox Code Playgroud)

但请注意,如果T1.value大于1000,这将失败.在订购之前将所有单元转换为相同类型可能更好.

查询结果:

id  id_attribute  value  name    ums
3   2             15.00  price     
1   1             50     hdd     GB
2   1             100    hdd     TB
Run Code Online (Sandbox Code Playgroud)