Mysql 基于“选择不同于其他表”的“从表中选择”

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不同的字段(没有重复项),并使用结果作为键从另一个表2中进行选择。我需要在一个查询中找到这个。这可能吗


表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!!你的解决方案很有效。非常感谢,先生:)