我在这里遇到一些问题。 所以我有两个表,我需要以我认为复杂的方式获取数据。 以下是两个表的摘要
客户端
住宿
我的想法对我来说非常困难
$select_accomodation = "SELECT * FROM `accommodation` WHERE `booked` = 1";
if($select_accomodation_run = @mysql_query($select_accomodation))
{
//awesome code that does no 2
}
完成任务1和2的最佳方法是什么。希望在一个mysql语句中
答案 0 :(得分:4)
如果您只想为预订的客户选择所有住宿,您可以
SELECT a.*
FROM accommodation a
INNER JOIN clients c ON a.client_id = c.client_ID
WHERE c.booked = 1
答案 1 :(得分:3)
试试这个:
select t1.client_id, t2.accommodation_id, t2.client_id, t2.data, t2.price from clients t1 JOIN accommodation t2 on t1.client_id = t2.client_id WHERE t1.booked = 1
答案 2 :(得分:1)
我的想法是,首先编写一个子查询来获取第1部分所需的ID,即:
SELECT client_id FROM clients WHERE booked = 1
然后,您可以使用IN子句
在住宿表的另一个查询中使用该子查询SELECT a.* FROM accomodation a WHERE a.client_id IN (SELECT c.client_id FROM clients c WHERE c.booked = 1);