如果第二个 lookup.id 已被使用,我如何改进现有查询以显示正确的查找值。如果我使用派生表会更好吗?子查询?有人可以教我吗?
问题:
RECORDS TYPE TYPE_DESC PROCESS_ID STATUS QUEUE_DESC
1 1 Queued 55 4 Queued
1 2 Cancelled 84 7 Cancelled
我的目标:
RECORDS TYPE TYPE_DESC PROCESS_ID STATUS QUEUE_DESC
1 1 Initial 55 4 Queued
1 2 Follow Up 84 7 Cancelled
现有查询:
SELECT
COUNT(q.id) as records,
q.type,
l.description AS type_desc,
q.process_id,
q.status,
l.description AS queue_desc
FROM
queues q,
lookups l
WHERE
l.id = q.status
GROUP BY q.status;
为了更好地理解我的问题,请参阅 sqlfiddle 条目: http://sqlfiddle.com/#!2/6b7d10/6
谢谢
最佳答案
您必须加入“查找”表两次。
SELECT COUNT(q.id) AS records
,q.type
,l1.description AS type_desc
,q.process_id
,q.status
,l2.description AS queue_desc
FROM queues q
,lookups l1
,lookups l2
WHERE l1.id = q.type
and l2.id = q.status
GROUP BY q.status;
就是这样。
关于MySQL:使用一个查找表查询具有不同查找ID的两个字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25396136/