我一直在試圖寫一個MySQL查詢來處理差異報告Approved ='是'與Approved ='no' rows in a single table。 - 我嘗試了一些方法(包括自連接和創建/查詢臨時表),無論我嘗試什麼,最終都會輸出錯誤的數據集。從一個表中選擇差異報告MySQL
SELECT DISTINCT a.*
FROM myTable a
JOIN myTable b
ON a.apples = b.apples
AND a.bananas = b.bananas
AND a.oranges = b.oranges
WHERE (
a.Approved = 'no'
AND b.Approved = 'yes'
) AND (
a.diffVal1 <> b.diffVal1
OR a.diffVal2 <> b.diffVal2
OR a.diffVal3 <> b.diffVal3
)
在這種情況下,我想比較具有相同的蘋果,香蕉,桔子行......而且,如果任何diffVal的比較行之間是不一樣的,我想將該行包含在正在輸出的集合中。我不知道爲什麼這不起作用,但每次運行時都會包含所有「否」條目,無論是否存在具有相同蘋果,香蕉和橙子的「是」條目diffVals。 (幾乎就像它忽略了diffVal部分一起)
我確定這是愚蠢的,我忽略了,但如果你有任何建議,我將不勝感激他們。
已填充表
id apples bananas oranges diffVal1 diffVal2 diffVal3 Approved
1 red yellow orange a b c yes
2 red yellow orange a b c yes
3 red green orange a b c yes
4 red yellow orange a b c no
5 red yellow orange a H c no
6 green yellow orange a H c no
7 red yellow orange a b d yes
8 red yellow orange a b e yes
9 red yellow orange a b c yes
10 red yellow orange a b c yes
11 red yellow orange a b c yes
12 red yellow orange a b c yes
13 red yellow orange a b c no
14 red yellow orange a b c no
15 red yellow orange a b c no
16 red yellow orange d d d no
從運行上述查詢
5 red yellow orange a H c no
16 red yellow orange d d d no
4 red yellow orange a b c no
13 red yellow orange a b c no
14 red yellow orange a b c no
15 red yellow orange a b c no
正如你可以看到實際效果,它包含在輸出行,其中紅,黃,橙有abc代表diffVals,儘管事實上有'是'的紅色黃色的條目,abc代表diffVal秒。
預期結果
5 red yellow orange a H c no
16 red yellow orange d d d no
- 我對格式道歉。我試圖添加屏幕截圖,但由於我是新手,堆棧溢出不會讓我添加圖像。
顯示您的表結構和樣品的輸入和輸出 – Sathish
什麼是確切的期望輸出你期望得到什麼? – peterm
前兩行應該是唯一的行輸出(基於我想要的)最後4行都是與現有「yes」行相同值的行,所以它們不應該輸出。 – user3863111