仅当 a.rid = 5
时,我想选择 f.field_node_tax_inception_tid
,我该怎么做?因为如果没有,它会显示大量结果并且 distinct
不起作用。
SELECT DISTINCT c.couponid, c.id, y.tid, f.field_node_tax_inception_tid
FROM `users_roles` a, `field_data_field_ypefthinos` b, `custom_redemptions` c, `field_data_field_chain_manager` e, `field_data_field_node_tax_inception` f, `field_data_field_brand_manager` j, `field_data_field_brand_node_ref` k, `field_data_field_product_ref` i, `field_data_field_company_manager` z, `field_data_field_brand_company` t, `taxonomy_term_data` y
WHERE a.uid = ?
AND
(a.rid = 4
AND b.field_ypefthinos_uid = a.uid
AND b.entity_id = c.branchid)
OR
(a.rid = 5
AND e.field_chain_manager_uid = a.uid
AND e.entity_id = f.entity_id
AND f.field_node_tax_inception_tid = c.chainid
AND f.field_node_tax_inception_tid = y.tid)
OR
(a.rid = 9
AND j.field_brand_manager_uid = a.uid
AND j.entity_id = k.field_brand_node_ref_nid
AND k.entity_id = i.field_product_ref_nid
AND i.entity_id = c.couponid)
OR
(a.rid = 6
AND z.field_company_manager_uid = a.uid
AND z.entity_id = t.field_brand_company_nid
AND t.entity_id = k.field_brand_node_ref_nid
AND k.entity_id = i.field_product_ref_nid
AND i.entity_id = c.couponid)
最佳答案
使用CASE
case a.rid when 5 then f.field_node_tax_inception_tid when 5 else null end
关于php - sql mysql 选择列 IF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31559620/