2017-05-01 51 views
0

即時通訊工作的項目和下一部分我將需要比較2個查詢的結果。C#MySQL - 兩個查詢之間的差異

場景: 在一張桌子裏我把所有的隊員都放在了隊伍中。另一張桌上的 只是你教練所要求的比賽。

我想知道的留在外面

什麼是我採取的最佳方法哪些球員?

我能使用類似

(Query for Selecting all players) 
    EXCEPT 
    (Query for Selecting the ones called by the coach) 

所有球員

Number | Name 
    ------ | ------ 
    23  | john 
    24  | Mario 

選擇球員

Number | Name 
    ------ | ------ 
    23  | john 

我希望它得到的結果爲馬里奧丟失從所選擇的球員表

+2

請添加包含數據和預期結果的表格。使它更容易理解你想要的東西。 – Zulatin

回答

1

使用NOT EXISTS

select * from all_players p1 
where not exists 
(select 1 from players p2 
where p1.number=p2.number 
and p1.name=p2.name 
-- and -- You can add other columns here 
) t 

使用LEFT JOIN

select p1.* from all_players p1 
left join players p2 
on p1.number=p2.number 
and p1.name=p2.name 
-- and p1.last_name=p2.last_name --add other columns 
where 
(p2.number is null 
and p2.name is null 
-- and p2.last_name is null --add other columns 
) 

使用,如果有相同的密鑰匹配

select * From all_players p 
where number not in (select number from players) 
+0

我會做出同樣的問題,我做了其他 好吧,這似乎是我在找什麼,但在我的情況下,可以說,球員的姓氏在另一列,所以2 johns可以存在與不同的姓氏我如何比較現在的4個字段 我想比較的第一個和第二個名字合併 – Cacheira

+0

是的!左連接方法工作謝謝!還沒有嘗試過其他的,因爲我已經有我需要的東西。 如果有人嘗試使用其他方法評論併成功發表評論 – Cacheira

0

用戶這款U可以得到你的結果

Select players from players_table where player not in (select coach_selected_player from coach_selected_player_table)

+0

好吧,這似乎是我在尋找什麼,但在我的情況下,讓我們說,球員的姓氏是在另一列,所以2 johns可以存在與不同的姓氏如何比較現在的4個字段 – Cacheira

+0

然後添加另一個條件像'或'或'和'和另一個場也是如此 – Jenish