INNER JOIN选择

时间:2012-01-19 13:10:40

标签: mysql

我的内连接有问题。我需要在使用内连接组合表之前过滤表。以下代码当然是错误的,但我需要这样的东西。请帮忙。

SELECT * FROM hotel LEFT OUTER JOIN (**hotel_table where hotel_table.id_offer=$id**) ON (hotel.id = hotel_table.id_hotel)

修改

感谢您的快速回答。但是我得到一个错误:"每个派生表必须有自己的别名"我的代码:

SELECT *
FROM 
   czajka_zakwaterowania 
   LEFT OUTER JOIN 
   (
   SELECT * 
   FROM czajka_hotel_l 
   WHERE czajka_hotel_l.id_hotel=$id
   ) 
   ON (czajka_zakwaterowania.id = czajka_hotel_l.id_hotel)

我该如何解决这个问题?

此代码显示错误:"每个派生表必须有自己的别名"我不能消除它。

1 个答案:

答案 0 :(得分:5)

SELECT *
FROM 
   hotel 
   LEFT OUTER JOIN 
   hotel_table ON hotel.id = hotel_table.id_hotel AND hotel_table.id_offer=$id

SELECT *
FROM 
   hotel 
   LEFT OUTER JOIN 
   (
   SELECT * 
   FROM hotel_table 
   WHERE hotel_table.id_offer=$id
   ) ht ON hotel.id = ht.id_hotel