Heim  >  Artikel  >  Datenbank  >  Einführung in das Ändern zugehöriger Variablenbedingungen sowie das Abfragen und Anzeigen von Daten in einer Zeile in MySQL

Einführung in das Ändern zugehöriger Variablenbedingungen sowie das Abfragen und Anzeigen von Daten in einer Zeile in MySQL

不言
不言nach vorne
2018-10-20 17:09:502608Durchsuche

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

Einführung in das Ändern zugehöriger Variablenbedingungen sowie das Abfragen und Anzeigen von Daten in einer Zeile in MySQL

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:segmentfault.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen