Mysql 基于“选择不同于其他表”的“从表中选择”
在这种情况下,我需要选择一个与表1不同的字段(没有重复项),并使用结果作为键从另一个表2中进行选择。我需要在一个查询中找到这个。这可能吗Mysql 基于“选择不同于其他表”的“从表中选择”,mysql,Mysql,在这种情况下,我需要选择一个与表1不同的字段(没有重复项),并使用结果作为键从另一个表2中进行选择。我需要在一个查询中找到这个。这可能吗 表1:hID、hName、hLocation 表2:hID、hFrom、hTo、hRate、HROOM类型、hMeals 我想更正此查询的版本: SELECT * FROM table1 JOIN ( DISTINCT hID FROM table2 WHERE hRoom
表1:hID、hName、hLocation 表2:hID、hFrom、hTo、hRate、HROOM类型、hMeals 我想更正此查询的版本:
SELECT
*
FROM
table1
JOIN (
DISTINCT
hID
FROM
table2
WHERE
hRoomType = Double Room
ON table1.hID = table2.hID)
预期结果:所有提供双人房的酒店非常感谢-
谢谢你的帮助 你的问题很模糊,令人困惑。这就是你想要的吗:
SELECT hID, name, location
FROM table2
INNER JOIN table1
ON table1.hID = table2.hID
GROUP BY table2.hID;
以下是实现这一目标的框架:
SELECT
* -- Don't forget to list the requested fields instead of using `*`!
FROM (
-- This is the distinct list from table1
SELECT DISTINCT
id
FROM
table1 T1
) DT1
INNER JOIN table2 T2
ON T1.id = T2.reference_to_t1_id
如果您不想从表1检索任何列,另一种解决方案是:
SELECT
* -- Don't forget to list the requested fields instead of using `*`!
FROM
table2 T2
WHERE
-- Sais that get all record from table2 where this condition matches
-- at least one record
EXISTS (
SELECT 1 FROM table1 T1 WHERE T1.id = T2.reference_to_t1_id
)
用于您的表格和问题
SELECT
hID, hName, hLocation
FROM
table1 T1
WHERE
EXISTS (
SELECT 1 FROM
table2 T2
WHERE
T1.hID = T2.hID
AND T.hRoomType = 'Double' -- Assuming that this is the definition of double rooms
)
是的,但是如果没有您的表结构,我什么也说不出来。感谢Abhik立即回复~table1:ID(key)、hID、Rate、acom、Room table2:hID(key)、name、location我需要使用distinct从表1中选择hID,以及从表2和表2中选择的结果?这些字段是什么?表2:hID(键)、名称、位置我需要使用distinct从表1中选择hID,并使用结果从表2中选择。请编辑您的问题,添加表,以及尝试过的代码。表1:hID、hName、hLocation表2:hID、hFrom、hTo、hRate、hRoomType、,hMeals我想更正此查询的版本:SELECT*FROM table1 JOIN(与表2中的hID不同,其中hRoomType=table1上的双人间。hID=table2.hID)预期结果:所有提供双人间的酒店非常感谢您延迟回复Pred!!你的解决方案很有效。非常感谢,先生:)