sql查询使用两个表

时间:2011-09-03 17:55:35

标签: sql join

表一:

|user_id|hotel_id|  
|  1    |  4     |
|  1    |  5     | 
|  2    |  6     |
|  4    |  7     |

表二:

|hotel_id|hotel_name|more_ifo| 
|    4   | bla      |bla     |
|    5   | bla      |bla     |
|    6   |more bla  |bla     |
|    7   | bla      |bla     |

我想获得某个用户拥有的酒店的所有信息,例如用户一个酒店4和5 ..任何帮助?我尝试使用连接,但我想我没有正确使用它??

4 个答案:

答案 0 :(得分:3)

SELECT users.*, hotels.*
FROM users
INNER JOIN hotels
ON users.hotel_id = hotels.hotel_id

请注意,在*子句中使用SELECT被视为不良做法;我只在这里作为使用连接的一个例子的一部分。

如果您要搜索与特定用户相关联的酒店,只需添加WHERE子句即可:

SELECT users.*, hotels.*
FROM users
INNER JOIN hotels
ON users.hotel_id = hotels.hotel_id
WHERE users.user_id = ?

答案 1 :(得分:2)

t1table one的别名 t2是别名table two

select t1.user_id,t2.hotel_id,t2.hotel_name,t2.more_info
from table_one t1 INNER JOIN table_two t2
ON t1.hotel_id=t2.hotel_id
where t1.user_id=1;

答案 2 :(得分:1)

您可以使用exists子句查询所有酒店:

select  *
from    hotels
where   exists
        (
        select  *
        from    users
        where   users.hotel_id = hotels.hotel_id
                and users.user_id = @YourUserId
        )

答案 3 :(得分:1)

Select B.more_ifo
From table_one A, table_two B
Where A.hotel_id = B.hotel_id

这不行吗?

之后;

Select B.more_ifo
From table_one A, table_two B
Where A.hotel_id = B.hotel_id
AND A.hotel_id IN (4, 5)