我可以使用哪个SELECT查询仅显示cars
WHERE bookings
。status
<>1
因此在下表中cars
。id
(1、3、4、6)将仅显示为结果
我被这个问题卡住了,或者这有什么好处:
SELECT * FROM `cars` as `C` INNER JOIN `bookings` AS `B` ON `C`.`id` = `B`.`id` ....?
cars
id | name
-- | -------------
1 | Car 1
2 | Car 2
3 | Car 3
4 | Car 4
5 | Car 5
6 | Car 6
bookings
id | car_id | status
-- | ------ | ------
1 | 1 | 0
2 | 2 | 1
3 | 2 | 2
4 | 1 | 0
5 | 5 | 1
编辑:很抱歉,我在这里不清楚,我也想把其他的列为结果,即使它们不在bookings
表
试试这个:
SELECT * FROM `cars` as `C` INNER JOIN `bookings` AS
`B` ON `C`.`id` = `B`.`id` where `B`.`status` <> 1
如果你不想要来自不在预订中的汽车的记录,可以试试这个:
SELECT * FROM `Cars` as `C` Right JOIN `Booking` AS
`B` ON `C`.`id` = `B`.`id`
这将只显示汽车
SELECT c.name FROM `cars` as `C` INNER JOIN `bookings` AS
`B` ON `C`.`id` = `B`.`id` where `B`.`status` != 1
尝试这个
SELECT * FROM `cars` C, `bookings` B WHERE C.id=B.car_id AND B.status!=1
试试这个。。。
SELECT * FROM cars C LEFT JOIN bookings B ON C.id = B.car_id WHERE B.status <> 1
假设bookings
表中的car_id
与cars
表中的id
是同一列。。。
SELECT A.* from cars A
inner join bookings B on A.id=B.car_id
where b.status<>1;
使用此查询解决问题
SELECT * FROM `cars` WHERE `id` NOT IN (SELECT `B`.`car_id` FROM `cars` AS `C` INNER JOIN `bookings` AS `B` ON `C`.`id` = `B`.`car_id` WHERE `B`.`status` = 1)
感谢大家,这对您的回答有很大帮助
SELECT A.* , B.* FROM cars A, bookings B WHERE B.car_id=A.id AND B.status <> 1