Mysql表加入自身

时间:2014-05-01 17:04:19

标签: mysql sql

我慌张 我试图加入一个表格来检查以确保我们处理的文件在我们的过程中一直进行。我有一个简化的版本,发生在SQLFiddle的表格中。

我还使用了另一个小提琴来模拟我所寻找的result

我试图避免为了能够使这个查询工作而必须生成另一个表,但如果它是不可能的,那么我就没有问题。只是试图压低表的数量就足够了。

非常感谢任何帮助。谢谢社区!

2 个答案:

答案 0 :(得分:1)

这有效:

   select distinct
       (t1.status), t1.file, t2.status as status_out
   from
       photo as t1
           left join
       photo t2 ON t1.file = t2.file
           and t2.status = 'Processed'
   where
       t1.status = 'Raw Scanned'

http://sqlfiddle.com/#!2/c3470/25/0

答案 1 :(得分:1)

创建派生表并在派生表上使用左连接。代码如下。

select 
F1.File as File, 
F1.Status as StatusIn, 
F2.Status as StatusOut 
from 
(
select t1.file, t1.status
from photo as t1 where t1.status = "Raw Scanned" )F1
left join
(
select t2.file, t2.status
from photo as t2
where t2.status = "Processed" )F2
on F1.file = F2.file;

小提琴here