[英]Joining tables based on reference table value
有這些桌子
並給定post_map.tag_id='1'
,我想得到:
entity_type表確定要查找的表,即存儲在哪個表中的entity_id。我的主要目標是獲取此表,作為mysqli :: multi_query()或mysqli :: query()的結果,即不使用PHP返回並返回多次訪問數據庫; 該表可能有很多行,並且一次獲取該表會更有效率。
到目前為止,我的嘗試:
可以通過IF()和JOIN完成。 我為您提供解決方案,在查詢下運行...
SELECT et.type,
IF(et.type='resource',r.resource_type_id,NULL) AS resource_type_id,
IF(et.type='resource',r.value,NULL) AS value,
IF(et.type='user',u.name,NULL) AS name,
IF(et.type='link',l.source,NULL) AS source,
IF(et.type='link',l.count,NULL) AS count
FROM `post_map` as pm
JOIN `entity_type` as et ON pm.entity_id = et.id
LEFT JOIN `resource` as r ON pm.entity_type_id=r.id
LEFT JOIN `user` as u ON pm.entity_type_id=u.id
LEFT JOIN `link` as l ON pm.entity_type_id=l.id
WHERE pm.tag_id='1'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.