mysql多表刪除,多對多關係,外連線,自連線

2021-10-12 07:37:38 字數 1046 閱讀 2889

先進行查詢操作

刪除沒有學習任何課程的同學

學生表,課程表

select

*from stu as s

left

join stu_lesson as sl

on s.id = sl.stu_id

where sl.stu_id is

null

然後把這個表刪除

把 select

* 換成 delete s //s表示最後合併後的這個表,最後將這個表中沒有學習任何課程的同學刪除

乙個學生可以參加多個課程,乙個課程可以對應多個學生,

所以二者之間的關係需要中間表進行連線 stu_lesson

哪個班的同學更喜歡php

班級表,學生表,課程表,stu_lesson表

select

*from class as c

inner

join stu as s

on c.id = s.class_id

inner

join stu_lesson as sl

on s.id = sl.stu_id

inner

join lesson as l

on sl.lesson_id = l.id;

在將select

* 換成查詢條件 select c.id

相比inner join 來說 left join和right join 可以合併不符合匹配條件的null資訊,提供更多select結果

對同乙個表設定不同的別名

查詢學生表中,和李明同一班的學生

select

*from stu as s1

inner

join stu as s2

on s1.class = s2.class

where s1.name =

'李明'

and s2.name !=

'李明'

;

多對多關係

實體模型中相關的模型之間為了方便查詢需要做到你中有我 我中有你 一對多表設計上是在多方應用少方的主鍵作為外來鍵約束 模型上需要在多方加入乙個少方模型物件的屬性,在少方加入乙個多方物件的列表 語法 少方物件 db.relationship 少方模型名 backref db.backref xxlist...

多對多關係的多表關聯查詢

出處 下面我就舉個比較好理解的例子來說明這個概念。學生和學生所選的選修課之間的關係,就符合多對多的關係,怎麼理解呢?乙個學生可能會選擇多門選修課,而,一門選修課則可能會對應多個學生,下面我以此為例子來說明這個問題。alter table stu ref sub add constraint fk s...

Flask sqlalchemy多對多關係

from flask import flask from flask sqlalchemy import sqlalchemy article tag db.table article tag db.column article id db.integer,db.foreignkey article...