2014-05-02 60 views
0

我有兩個表具有以下結構:MySQL的適應JOIN根據場景

exp_hotel

hot_id | hot_webid | hot_name | hot_starrating | hot_brandbool | hot_latitude | hot_longitude 

exp_result

res_id | res_idHotel | res_rank | res_price | res_userRating | res_oldPrice | res_posa | res_date | res_date | res_que_id 

res_posa有時任一值 'XXX' 或值'yyy'。

如果它的值是 'XXX',該選擇應該是這樣的:

SELECT * FROM exp_hotel JOIN exp_result ON hot_id = res_idHotel 

如果res_posa值是 'YYY' 比SELECT的是:

SELECT * FROM exp_hotel JOIN exp_result ON hot_webid = res_idHotel 

有一種如何創建一個查詢,這將直接從MySQL中選擇正確的JOIN結構的一切,而無需通過一些PHP數組等等?

回答

1

你可以像下面那樣使用條件連接。

SELECT * FROM exp_hotel JOIN exp_result ON 
(res_posa = 'XXX' and hot_id = res_idHotel) 
OR 
(res_posa = 'YYY' and hot_webid = res_idHotel); 

小樣小提琴here

+0

非常感謝! – l3aronsansgland

+0

不客氣。如果它適合你,你可以通過接受答案來結束這個問題。 –