MySQL学习足迹记录14--表别名和自联结_MySQL
bitsCN.com
MySQL学习足迹记录14--表别名和自联结
本查询所用到的表:
下面的表num代表公共汽车路线,如1路车,2路车,stop带表停车站点,如A站,B站
表:
route;+------+------+| num | stop |+------+------+| 1 | A || 1 | B || 1 | C || 2 | B || 2 | C || 2 | D |+------+------+
准备知识
1.使用表别名
*表别名只在查询执行中使用
*表别名不返回到客户机
Example: mysql> SELECT * from route AS r1 -> WHERE r1.num = 1;+------+------+| num | stop |+------+------+| 1 | A || 1 | B || 1 | C |+------+------+3 rows in set (0.00 sec)
解析:
相信理解表别名应该不费力,类似与列别名,表别名只是给表取另外一个名字而已,代表的还是相同的表
2.自联结
*自联结通常作为外部语句来代替从相同表中检索数据时使用的子查询语句
*使用表别名能在单条语句中多次使用相同的表
下面给出一个简单的例子帮助理解自联结的原理
Example:
下面的语句查询的结果是共用同一车站的所有公交线
mysql> SELECT DISTINCT r2.num,r2.stop -> FROM route AS r1,route AS r2 -> WHERE r1.stop = r2.stop -> ORDER BY r2.stop;+------+------+| num | stop |+------+------+| 1 | A || 1 | B || 2 | B || 1 | C || 2 | C || 2 | D |+------+------+6 rows in set (0.00 sec)
解析:
第一句
mysql> SELECT DISTINCT r2.num,r2.stop -> FROM route AS r1,route AS r2;
为了详解,这里先去除DISTINCT关键字,并只截取下面的子句
mysql> select * From route AS r1,route r2;+------+------+------+------+| num | stop | num | stop |+------+------+------+------+| 1 | A | 1 | A || 1 | B | 1 | A || 1 | C | 1 | A || 2 | B | 1 | A || 2 | C | 1 | A || 2 | D | 1 | A || 1 | A | 1 | B || 1 | B | 1 | B || 1 | C | 1 | B || 2 | B | 1 | B || 2 | C | 1 | B || 2 | D | 1 | B || 1 | A | 1 | C || 1 | B | 1 | C || 1 | C | 1 | C || 2 | B | 1 | C || 2 | C | 1 | C || 2 | D | 1 | C || 1 | A | 2 | B || 1 | B | 2 | B || 1 | C | 2 | B || 2 | B | 2 | B || 2 | C | 2 | B || 2 | D | 2 | B || 1 | A | 2 | C || 1 | B | 2 | C || 1 | C | 2 | C || 2 | B | 2 | C || 2 | C | 2 | C || 2 | D | 2 | C || 1 | A | 2 | D || 1 | B | 2 | D || 1 | C | 2 | D || 2 | B | 2 | D || 2 | C | 2 | D || 2 | D | 2 | D |+------+------+------+------+36 rows in set (0.00 sec)
从上面的查询结果中可以看出,共有36条记录(刚好是两张表的笛卡尔积,关于笛卡尔积,请点击MySQL学习足迹记录13--联结表),
可一推测,所谓的自联结就是把同一张表,看成独立的,不同的两张表r1,r2
我们的目的是查询共用同一车站的所有公交线,所以从上表的结果集中再添加筛选条件(令车站相等):
r1.stop = r2.stopmysql> SELECT * FROM route AS r1,route AS r2 -> WHERE r1.stop = r2.stop; +------+------+------+------+| num | stop | num | stop |+------+------+------+------+| 1 | A | 1 | A || 1 | B | 1 | B || 2 | B | 1 | B || 1 | C | 1 | C || 2 | C | 1 | C || 1 | B | 2 | B || 2 | B | 2 | B || 1 | C | 2 | C || 2 | C | 2 | C || 2 | D | 2 | D |+------+------+------+------+10 rows in set (0.00 sec)
这已经很接近所需的结果了,但我们只需num,stop两列,再添加
SELECT r2.num,r2.stop (SELECT r1.num,r1.stop也OK) mysql> SELECT r2.num,r2.stop -> FROM route AS r1,route r2 -> WHERE r1.stop = r2.stop;+------+------+| num | stop |+------+------+| 1 | A || 1 | B || 1 | B || 1 | C || 1 | C || 2 | B || 2 | B || 2 | C || 2 | C || 2 | D |+------+------+10 rows in set (0.00 sec)
最后去除相同的记录,再按车站排序
mysql> SELECT DISTINCT r2.num,r2.stop -> FROM route AS r1,route AS r2 -> WHERE r1.stop = r2.stop -> ORDER BY r2.stop;+------+------+| num | stop |+------+------+| 1 | A || 1 | B || 2 | B || 1 | C || 2 | C || 2 | D |+------+------+6 rows in set (0.00 sec)
从结果集中可以看出1路车和2路 车共用B,C车站
bitsCN.com
Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Perisian Pinduoduo menyediakan banyak produk yang bagus, anda boleh membelinya pada bila-bila masa dan di mana-mana sahaja, dan kualiti setiap produk dikawal ketat, setiap produk adalah tulen, dan terdapat banyak diskaun beli-belah keutamaan, membolehkan semua orang membeli-belah dalam talian. Masukkan nombor telefon mudah alih anda untuk log masuk dalam talian, tambahkan berbilang alamat penghantaran dan maklumat hubungan dalam talian, dan semak arah aliran logistik terkini pada bila-bila masa. Cari dan leret ke atas dan ke bawah untuk membeli dan membuat pesanan. Anda boleh mengalami kemudahan tanpa meninggalkan rumah Dengan perkhidmatan membeli-belah dalam talian, anda juga boleh melihat semua rekod pembelian, termasuk barangan yang telah anda beli, dan menerima berpuluh-puluh sampul merah beli-belah dan kupon Sekarang editor telah menyediakan maklumat dalam talian terperinci untuk Pengguna Pinduoduo untuk melihat rekod produk yang dibeli. 1. Buka telefon anda dan klik pada ikon Pinduoduo.

Cara Melihat Sejarah Perintah dalam Linux Di Linux, kami menggunakan perintah sejarah untuk melihat senarai semua arahan yang dilaksanakan sebelum ini. Ia mempunyai sintaks yang sangat mudah: sejarah Beberapa pilihan untuk berpasangan dengan perintah sejarah termasuk: Penerangan pilihan -c mengosongkan sejarah arahan untuk sesi semasa -w menulis sejarah arahan ke fail -r memuat semula sejarah arahan daripada fail sejarah - n Hadkan bilangan keluaran bagi perintah terkini Hanya jalankan perintah sejarah untuk melihat senarai semua perintah yang dilaksanakan sebelum ini dalam terminal Linux: Selain melihat sejarah arahan, anda juga boleh mengurus sejarah arahan dan melakukan pengubahsuaian pada perintah yang dilaksanakan sebelum ini, membalikkan cari sejarah arahan atau padam sejarah sepenuhnya

Rakaman panggilan dalam iPhone sering dipandang remeh dan merupakan salah satu ciri iPhone yang paling kritikal. Dengan kesederhanaannya, ciri ini amat penting dan boleh memberikan cerapan penting tentang panggilan yang dibuat atau diterima pada peranti. Sama ada untuk tujuan kerja atau prosiding undang-undang, keupayaan untuk mengakses rekod panggilan boleh terbukti tidak ternilai. Secara ringkas, sejarah panggilan merujuk kepada entri yang dibuat pada iPhone anda apabila anda membuat atau menerima panggilan. Log ini mengandungi maklumat penting, termasuk nama kenalan (atau nombor jika tidak disimpan sebagai kenalan), cap masa, tempoh dan status panggilan (didail, terlepas atau tidak dijawab). Ia adalah rekod ringkas tentang sejarah komunikasi anda. Sejarah panggilan termasuk jalur sejarah panggilan yang disimpan pada iPhone anda

iPhone membolehkan anda menambah ubat dalam apl Kesihatan untuk menjejak dan mengurus ubat, vitamin dan suplemen yang anda ambil setiap hari. Anda kemudian boleh log ubat yang telah anda ambil atau langkau apabila anda menerima pemberitahuan pada peranti anda. Selepas anda mencatatkan ubat anda, anda boleh melihat kekerapan anda mengambil atau melangkaunya untuk membantu anda menjejaki kesihatan anda. Dalam siaran ini, kami akan membimbing anda untuk melihat sejarah log ubat yang dipilih dalam apl Kesihatan pada iPhone. Panduan ringkas tentang cara melihat sejarah log ubat anda dalam Apl Kesihatan: Pergi ke Apl Kesihatan>Semak imbas>Ubat>Ubat>Pilih Ubat>Pilihan&a

Cadangan Pembangunan C#: Sistem Pembalakan dan Pemantauan Ringkasan: Dalam proses pembangunan perisian, sistem pembalakan dan pemantauan adalah alat penting. Artikel ini akan memperkenalkan peranan dan cadangan pelaksanaan sistem pembalakan dan pemantauan dalam pembangunan C#. Pengenalan: Pembalakan dan pemantauan adalah alat penting dalam projek pembangunan perisian berskala besar. Mereka boleh membantu kami memahami status berjalan program dalam masa nyata dan menemui serta menyelesaikan masalah dengan cepat. Artikel ini akan membincangkan cara menggunakan sistem pengelogan dan pemantauan dalam pembangunan C# untuk meningkatkan kualiti perisian dan kecekapan pembangunan. Peranan sistem pembalakan

Sama seperti manusia berjalan kaki, kereta pandu sendiri juga perlu mempunyai keupayaan untuk berfikir secara bebas dan membuat pertimbangan dan keputusan tentang persekitaran lalu lintas untuk melengkapkan proses perjalanan. Dengan peningkatan teknologi sistem pemanduan berbantu lanjutan, keselamatan pemandu yang memandu kereta terus bertambah baik, dan tahap penyertaan pemandu dalam membuat keputusan pemanduan secara beransur-ansur berkurangan Pemanduan Autonomi semakin dekat dengan kami. Kereta pandu sendiri, juga dikenali sebagai kereta tanpa pemandu, pada asasnya adalah robot yang sangat pintar yang boleh melengkapkan tingkah laku perjalanan dengan hanya bantuan pemandu atau tanpa operasi pemandu sama sekali. Pemanduan autonomi terutamanya direalisasikan melalui lapisan persepsi, lapisan membuat keputusan dan lapisan pelaksanaan Sebagai kenderaan automatik, kenderaan autonomi boleh menggunakan radar tambahan (radar gelombang milimeter, lidar), kamera kenderaan dan sistem satelit navigasi global (G.

01 Apakah itu casis papan selaju? Apa yang dipanggil casis papan selaju menyepadukan bateri, sistem pemacu elektrik, suspensi, brek dan komponen lain pada casis terlebih dahulu untuk mencapai pemisahan dan penyahgandingan badan dan casis. Berdasarkan jenis platform ini, syarikat kereta boleh mengurangkan R&D awal dan kos ujian dengan ketara, sambil bertindak balas dengan pantas kepada permintaan pasaran untuk mencipta model yang berbeza. Lebih-lebih lagi dalam era pemanduan tanpa pemandu, susun atur kereta tidak lagi tertumpu kepada pemanduan, tetapi akan memfokuskan pada atribut ruang Casis jenis papan selaju boleh memberikan lebih banyak kemungkinan untuk pembangunan kabin atas. Seperti yang ditunjukkan dalam gambar di atas, sudah tentu apabila kita melihat casis papan selaju, kita tidak sepatutnya dibingkai oleh kesan pertama "Oh, ia adalah badan yang tidak menanggung beban" apabila kita muncul. Tiada kereta elektrik ketika itu, jadi tiada pek bateri bernilai ratusan kilogram, tiada sistem stereng demi wayar yang boleh menghapuskan tiang stereng, dan tiada sistem brek demi wayar.

Bagaimana untuk log dan memantau projek pembangunan Java 1. Pengenalan latar belakang Dengan perkembangan pesat Internet, semakin banyak syarikat telah mula membangunkan Java dan membina pelbagai jenis aplikasi. Dalam proses pembangunan, pembalakan dan pemantauan adalah pautan penting yang tidak boleh diabaikan. Melalui pembalakan dan pemantauan, pembangun boleh menemui dan menyelesaikan masalah dalam masa untuk memastikan kestabilan dan keselamatan aplikasi. 2. Kepentingan pembalakan 1. Penjejakan masalah: Apabila ralat aplikasi berlaku, pengelogan boleh membantu kami mencari masalah dengan cepat.
