亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在mysql中,希望僅顯示具有不同列名的2個表的2個查詢中的唯一項目

在mysql中,希望僅顯示具有不同列名的2個表的2個查詢中的唯一項目

PHP
叮當貓咪 2023-10-22 21:44:04
在 mysql 中,希望僅顯示具有不同列名的 2 個表的 2 個查詢中的唯一項。我可以獨立運行它們,但我想創建一個可以在 PHP 下拉列表中使用的列表。我目前提取了查詢 1 的列表,它工作正常。但我需要消除查詢 2 中找到的選擇。希望這是有道理的,這不是我的職業,而只是一個副項目!查詢 1 -SELECT `driverName` FROM `A Drivers` WHERE `driverYear` = 2020查詢 2 -SELECT `driverA` FROM `user_picks` WHERE `userID` = 1 and `raceYear` = 2020查詢 2 的所有內容都將存在于查詢 1 中。我不想在結果中顯示它們。
查看完整描述

2 回答

?
回首憶惘然

TA貢獻1847條經驗 獲得超11個贊

您可以使用 NOT IN


SELECT `driverName` 

FROM `A Drivers` 

WHERE `driverYear` = 2020 

   AND `driverName` NOT IN (SELECT `driverA` 

                            FROM `user_picks` 

                            WHERE `userID` = 1 

                            AND `raceYear` = 2020)


查看完整回答
反對 回復 2023-10-22
?
波斯汪

TA貢獻1811條經驗 獲得超4個贊

我知道您希望兩個表中的驅動程序名稱不重復。如果是這樣,您可以使用union:


SELECT `driverName` FROM `A Drivers` WHERE `driverYear` = 2020

UNION

SELECT `driverA` FROM `user_picks` WHERE `userID` = 1 AND `raceYear` = 2020

這將為您提供一個結果集,其中只有一個名為 的列driverName,沒有重復項。


另一方面,如果您想要第一個查詢中的記錄在第二個查詢的結果中不存在,則可以使用not exists:


SELECT `driverName` 

FROM `A Drivers` ad 

WHERE 

    `driverYear` = 2020

    AND NOT EXISTS (

        SELECT 1

        FROM `user_picks` up 

        WHERE up.`userID` = 1 AND `up.raceYear` = 2020 and ip.`driverA` = ad.`driverName`

    )


查看完整回答
反對 回復 2023-10-22
  • 2 回答
  • 0 關注
  • 125 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號