MySQL:使用一个查找表查询具有不同查找ID的两个字段

标签 mysql sql join

如果第二个 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/

相关文章:

mysql - 在插入之前检查是否存在时出现语法错误

mysql - 如何创建临时表以从数组中选择? (MySQL)

python - Pandas:相互评估两个数据帧

php - 使用 Eloquent 从带有外键的单个表中获取数据到另外两个表 - laravel

mysql - 使用内连接连接同一数据库中超过 5 个表

php - 向 mysql 循环添加更多条件

php - 关系数据库组织

sql - 按日期降序排列父行,子行在每个行下独立排序

r - 交易从长到宽 reshape ,加入买卖数据帧

php - SQL join into join 创建好数组