我有2列與不同列數的意見。其中1個視圖已經與另一個視圖聯繫在一起,這就是爲什麼它有附加列。比較2列與不同列數的意見
第一個視圖有113個記錄(視圖2),而更新的視圖(視圖1)有130個列。我想查看查看1 中額外記錄的數量。
View 1 View 2
A|B|C|D|E A|B|C
1 2 3 4 5 1 2 3
1 2 3 7 8
3 2 1 4 5 3 2 1
3 2 1 7 8
預期的結果:
1 2 3 7 8
3 2 1 7 8
感謝。
我有2列與不同列數的意見。其中1個視圖已經與另一個視圖聯繫在一起,這就是爲什麼它有附加列。比較2列與不同列數的意見
第一個視圖有113個記錄(視圖2),而更新的視圖(視圖1)有130個列。我想查看查看1 中額外記錄的數量。
View 1 View 2
A|B|C|D|E A|B|C
1 2 3 4 5 1 2 3
1 2 3 7 8
3 2 1 4 5 3 2 1
3 2 1 7 8
預期的結果:
1 2 3 7 8
3 2 1 7 8
感謝。
您可以通過使用「不」獲得額外的記錄或「不存在」條件
select * from view1 m where not exists (
select 1 from view2 u where (m.a=u.a and m.b=u.b and m.c=u.c)
你可以改變這些條件按您的要求
隨着LEFT JOIN也將獲得所需要的結果
select m.* from view1 m left join view2 u
(m.a=u.a and m.b=u.b and m.c=u.c)
where u.a is null and u.b is null and u.c is null
您可能會重構您的數據庫架構和數據邏輯。
但爲了解決您的怪異要求,您可以:
http://sqlfiddle.com/#!9/cf2c50/2
SELECT t.a, t.b, t.c, t.d, t.e
FROM (
SELECT v1.*, IF(@idx = concat(v1.a,v1.b,v1.c),1,0) `filter`,@idx := concat(v1.a,v1.b,v1.c)
FROM v1
INNER JOIN v2
ON v1.a=v2.a AND v1.b=v2.b AND v1.c=v2.c
ORDER BY v1.a,v1.b,v1.c
) t
WHERE t.`filter`=1;
這不是查詢性能最好的例子,但它應該返回預期的結果。
行或列? –
添加一些示例數據並顯示預期結果。 (以及格式化文本。) – jarlh
左連接得到結果怎麼樣? –