Dieser Artikel bietet Ihnen eine Einführung in das Ändern zugehöriger Variablenbedingungen, das Abfragen und Anzeigen von Daten in einer Zeile (mit Code). Ich hoffe, dass dies für Freunde von Bedeutung ist Hilfe Du hast geholfen.
Eins-zu-viele-Daten werden in einer Zeile angezeigt
GROUP_CONCAT(expr)
1. Beteiligte Tabellenbeziehungen: Lehrertabelle, teacher_subject_rel-Tabelle (Lehrertabelle Tabelle der Fächer, die unterrichtet werden können), Fachtabelle
2. Geschäftsszenario: Es ist notwendig, die Nummern (teacher_no) und Fachnamen (subject_name) aller Lehrer abzurufen.   Die Lehrertabelle (teacher) und das Fach (teacher_subject_rel) haben eine Eins-zu-viele-Beziehung. In der Abfrage erscheinen häufig mehrere Daten für denselben Lehrer. Wir hoffen, dass das Datensubjekt jedes Lehrers zu einem zusammengefasst wird
1. Grundlegende Syntax
group_concat( [DISTINCT] Zu verbindende Felder [Reihenfolge nach Sortierfeld ASC/DESC] [ Trennzeichen 'Trennzeichen'] )
2. Beispiel
SELECT t.teacher_id as '教师id', t.teacher_no '教师编号', ( SELECT GROUP_CONCAT(s.subject_name) FROM teacher_subject_rel tsr LEFT JOIN `subject` s ON tsr.subject_id = s.subject_id WHERE t.teacher_id = tsr.teacher_id ) AS '学科' FROM teacher t
Unterabfrage, temporäre Tabelle abfragen, EXISTIERT
Beispiel
SELECT * FROM ( SELECT o.id, o.student_intention_id, s. NAME, s.area_id, a.area_name, s.exam_year, o. STATUS, CASE o. STATUS WHEN '1' THEN '待提交' WHEN '2' THEN '待指派' WHEN '3' THEN '已完成' WHEN '4' THEN '处理中' END statusName, CASE o.emergency_degree WHEN '1' THEN '正常' WHEN '2' THEN '紧急' WHEN '3' THEN '非常紧急' END emergencyDegreeName, o.emergency_degree, o.update_time, ( SELECT first_lesson_time FROM jx_strategy WHERE jx_lesson_plan_order_id = o.id AND STATUS IN (2, 7) AND first_lesson_time > now() ORDER BY first_lesson_time ASC LIMIT 1 ) AS first_time, ( SELECT deal_user_id FROM jx_strategy WHERE jx_lesson_plan_order_id = o.id AND STATUS 7 AND deal_user_id 0 ORDER BY id DESC LIMIT 1 ) AS deal_user_id FROM jx_lesson_plan_order o LEFT JOIN student s ON s.student_intention_id = o.student_intention_id LEFT JOIN area a ON s.area_id = a.id WHERE o. STATUS 1 AND s.phone = '18501665888' AND o.emergency_degree = 1 AND o. STATUS = 2 AND s.exam_year = '2015' AND o.update_time >= '2018-08-14 20:28:55' AND o.update_time = '2018-08-17 00:00:00' AND a.first_time <p><strong>Änderung der zugehörigen Variablenbedingung</strong></p><p>1. Beteiligte Tabellenbeziehung: id_number (ID-Kartennummer) in der user_info Tabelle Das Geburtsfeld in der Lehrertabelle, die Zuordnungsbeziehung usrer_id = teacher_id<br>2 Geschäftsszenario: Holen Sie sich das Geburtsdatum auf dem Personalausweis des Benutzers und aktualisieren Sie das Geburtsdatum im Geburtsfeld </p><pre class="brush:php;toolbar:false">UPDATE teacher t INNER JOIN ( SELECT t.teacher_id, t.birth, u.id_number, CONCAT(SUBSTRING(u.id_number, 7, 4), '-', SUBSTRING(u.id_number, 11, 2), '-', SUBSTRING(u.id_number, 13, 2)) as birth1, u.reg_date, t.exit_time from teacher t INNER JOIN user_info u ON u.user_id = t.teacher_id ) info on info.teacher_id = t.teacher_id SET t.birth = info.birth1 WHERE info.reg_date > '2018-08-20 00:00:00' and info.id_number is not NULL and (info.birth is NULL or t.birth = '') and t.is_train = 1
>
Das obige ist der detaillierte Inhalt vonEinführung in das Ändern zugehöriger Variablenbedingungen sowie das Abfragen und Anzeigen von Daten in einer Zeile in MySQL. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!