Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何将其编写为SQL查询_Mysql_Sql - Fatal编程技术网

Mysql 如何将其编写为SQL查询

Mysql 如何将其编写为SQL查询,mysql,sql,Mysql,Sql,我有一个用php编写的代码,它是一个查询,但我想转换成sql查询 return TimetableEntry::select('timetable_entries.id as tid') ->addSelect('timetable_entries.id as tid') ->join('weekdays', 'timetable_entries.weekday_id', '=', 'weekdays.id') ->addSelect('weekd

我有一个用php编写的代码,它是一个查询,但我想转换成sql查询

return TimetableEntry::select('timetable_entries.id as tid')

    ->addSelect('timetable_entries.id as tid')

    ->join('weekdays', 'timetable_entries.weekday_id', '=', 'weekdays.id')

    ->addSelect('weekdays.weekday as tweek')

    ->join('employees', 'timetable_entries.employee_id', '=', 'employees.id')

    ->addSelect('employees.id as eid')

    ->join('users', 'users.username', '=', 'employees.employee_number')

    ->join('timetables', 'timetables.id', '=', timetable_entries.timetable_id')

    ->addSelect('timetables.start_date as tstart')

    ->addSelect('timetables.end_date as tend')

    ->join('class_timings', 'class_timings.id', '=','timetable_entries.class_timing_id')

    ->addSelect('class_timings.start_time as start')

    ->where('users.id','=',$this->id)

    ->get();
查询可能看起来像

select timetable_entries.id as tid ,
weekdays.weekday as tweek,
employees.id as eid,
timetables.start_date as tstart,
timetables.end_date as tend,
class_timings.start_time as start

From timetable_entries
join weekdays
ON
timetable_entries.weekday_id=weekdays.id

join employees
ON 
timetable_entries.employee_id=employees.id

join users
ON users.username=employees.employee_number

join timetables
ON timetables.id=timetable_entries.timetable_id

join class_timings
ON class_timings.id=timetable_entries.class_timing_id

where users.id=timetable_entries.id

这应该让你开始:显然是未优化的

SELECT
    timetable_entries.id AS tid,
    weekdays.weekday AS tweek,
    employees.id AS eid
    timetables.start_date as tstart
    timetables.end_date as tend
    class_timings.start_time as start
FROM
    timetable_entries,
    weekdays,
    employees,
    timetables,
    class_timings
WHERE
    timetable_entries.weekday_id = weekdays.id,
    timetable_entries.employee_id = employees.id,
    users.username = employees.employee_number,
    timetables.id = timetable_entries.timetable_id,
    class_timings.id = timetable_entries.class_timing_id,
    users.id = <PUT_ID_HERE>

重写这样的查询并不太复杂,只要遵循SELECT语法的顺序即可


您的代码如下所示:

SELECT(
    timetable_entries.id AS tid,
    timetables.start_date AS tstart,
    weekdays.weekday AS tweek,
    timetables.end_date AS tend,
    employees.id AS eid,
    class_timings.start_time AS START

    FROM
    timetable_entries
    JOIN weekdays timetable_entries.weekday_id=weekdays.id
    JOIN employees timetable_entries.employee_id=employees.id
    JOIN users users.username=employees.employee_number
    JOIN timetables timetables.id=timetable_entries.timetable_id
    JOIN class_timings class_timings.id=timetable_entries.class_timing_id
    WHERE users.id=?(id);

注:?标记应用于前端输入

您是否有特定的问题,或者您是否要求他人为您编写查询?你能发布你已经做过的任何尝试吗?到目前为止你都做了什么?很抱歉澄清,但这是我第一次尝试编写基本sql语句,但我不确定我的查询。@BilalSaadeh,看看我的答案
SELECT(
    timetable_entries.id AS tid,
    timetables.start_date AS tstart,
    weekdays.weekday AS tweek,
    timetables.end_date AS tend,
    employees.id AS eid,
    class_timings.start_time AS START

    FROM
    timetable_entries
    JOIN weekdays timetable_entries.weekday_id=weekdays.id
    JOIN employees timetable_entries.employee_id=employees.id
    JOIN users users.username=employees.employee_number
    JOIN timetables timetables.id=timetable_entries.timetable_id
    JOIN class_timings class_timings.id=timetable_entries.class_timing_id
    WHERE users.id=?(id);