关联查询大致分为三种:
SELECT * FROM score, student WHERE score.id = student.id ...
SELECT * FROM score JOIN student ON (score.id = student.id) WHERE ...
SELECT * FROM score JOIN student USING (id) WHERE ...
这里我主要用的是JOIN ON,和INNER JOIN ON 做一个简单的区分:
SELECT
`user`.real_name,
car.car_no,
car.car_buy_date,
car.car_drive_age,
car.car_drive_times,
car.car_mileage,
car.car_status,
car.create_time
FROM
user_info user
INNER JOIN
car_info car
ON
(`user`.user_account=car.user_account)
WHERE
`user`.real_name LIKE 'Json';
高级SQL语句INNER JOIN 非常实用,在接触这个语句之前我要到数据库查询不同表的 内容我一般需要执行2次sql语句 循环2次。而现在有了这个语句 可以简化成只执行1次语句循环一次,有效的避免了查询时间过长,而且在关联查询的时候尽量避免使用*来全表查询,原因是因为 sql服务器 执行的sql语句结果越长 解析时间越长 执行时间就长,你这样就等于kill sql server!
SELECT
`user`.real_name,
car.car_no,
car.car_buy_date,
car.car_drive_age,
car.car_drive_times,
car.car_mileage,
car.car_status,
car.create_time
FROM
user_info user
JOIN
car_info car
ON
(`user`.user_account=car.user_account)
WHERE
`user`.real_name LIKE 'Json';
实质上主要的区分就是在优化数据库查询的时候,在大量数据中获取有效数据的时间最短,效率最高者优先使用。