mysql:如何在两个表之间更改模式
您好,我有以下模式: 酒店:mysql:如何在两个表之间更改模式,mysql,Mysql,您好,我有以下模式: 酒店: hotel_code int(4) unsigned NOT NULL default '0', hotel_name char(20) default NULL, city char(20) default NULL, address char(20) default NULL, hotel_rank int(1) unsigned NOT NULL default '0', phone char(10) default NULL, number_of_rooms
hotel_code int(4) unsigned NOT NULL default '0',
hotel_name char(20) default NULL,
city char(20) default NULL,
address char(20) default NULL,
hotel_rank int(1) unsigned NOT NULL default '0',
phone char(10) default NULL,
number_of_rooms int(4) unsigned NOT NULL default '0',
PRIMARY KEY (hotel_code));
房间:
hotel_code int(4) unsigned NOT NULL default '0',
room_number int(4) unsigned NOT NULL default '0',
type char(20) default NULL,
beds int(4) unsigned NOT NULL default '0',
price int(4) unsigned NOT NULL default '0',
PRIMARY KEY (hotel_code, room_number));
现在,我正在努力实现以下目标:
我的问题是:
显示价格在170-380之间的房间列表
在以下方案中:
hotel_code, hotel_name, city, room_number, price
并确保它按酒店排名
和
price
我知道如何把这两件事分开做,但不能把它们结合起来我试过了所有的方法…有什么建议吗
a = SELECT hotel_code, room_number, price FROM rooms WHERE price BETWEEN 170 AND 380 ORDER BY price;
b = SELECT hotel_code, hotel_name, city FROM hotels ORDER BY hotel_rank;
这是一个非常基本的SQL查询,与“在两个表之间更改模式”无关 使用
LEFT JOIN
(还有其他替代方法)可以使用一个列与两个表共享的值组合表,然后显示所需的结果
SELECT H.hotel_code, H.hotel_name, H.city, R.room_number, R.price
FROM hotels H LEFT JOIN rooms R ON H.hotel_code = R.hotel_code
WHERE R.price BETWEEN 170 AND 380
ORDER BY H.hotel_rank,R.price;
我建议您阅读一些基本教程()最好使用
{}
按钮进行代码格式化。