在 mysql 中,希望仅显示来自具有不同列名的 2 个表的 2 个查询的唯一项
In mysql , looking to only show unique items from 2 queries of 2 tables with different column names
在 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 中。我不想在我的结果中显示它们。
谢谢,史蒂夫
我知道您想要两个表中的驱动程序名称,不要重复。如果是这样,您可以使用 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`
)
您可以使用 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)
在 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 中。我不想在我的结果中显示它们。
谢谢,史蒂夫
我知道您想要两个表中的驱动程序名称,不要重复。如果是这样,您可以使用 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`
)
您可以使用 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)