我有两个彼此不相关的SQL表。但我需要这两个人来显示名字。
查询是:
SELECT ca_nombre
FROM cancion
ORDER BY ca_nombre ASC;
SELECT bai_nombre
FROM baile
ORDER BY bai_nombre ASC;
输出:
Amiga
Gracias a ti
La gata bajo la lluvia
Las locuras mías
Tu
Break dance
Danza clásica
Danza irlandesa
Flamenco
Polca
Salsa
cumbia
samba
但是我需要这样的输出:
Amiga
Arrow
Break dance
Cumbia
Danza clasica
Danza irlandesa
Gracias a ti
La gata bajo la lluvia
Las locuras mias
Polca
Salsa
Samba
Tu
cancion
表有如下数据:
Amiga
Gracias a ti
La gata bajo la lluvia
Las locuras mías
Tu
和dance
表有以下数据:
Break dance
Danza clásica
Danza irlandesa
Flamenco
Polca
Salsa
cumbia
samba
我如何组合它们并获得我需要的输出?
这是取消和恢复表脚本:
CREATE TABLE baile
(
bai_id INT NOT NULL,
bai_nombre CHAR(30) NOT NULL,
bai_antiguedad INT NULL,
bai_duracion INT NULL,
FOREIGN KEY (bai_id) REFERENCES concurso(con_id)
);
INSERT INTO baile VALUES (102, "cumbia", 40, 5);
INSERT INTO baile VALUES (102, "samba", 50, 5);
INSERT INTO baile VALUES (102, "Break dance", 30, 4);
INSERT INTO baile VALUES (102, "Salsa", 30, 4);
INSERT INTO baile VALUES (102, "Danza irlandesa", 34, 7);
INSERT INTO baile VALUES (102, "Flamenco", 35, 6);
INSERT INTO baile VALUES (102, "Polca", 50, 6);
INSERT INTO baile VALUES (102, "Danza clásica", 56, 5);
CREATE TABLE cancion
(
ca_id INT NOT NULL AUTO_INCREMENT,
ca_nombre CHAR(30) NULL,
ca_genero CHAR(20) NULL,
ca_anio YEAR NULL,
ca_cantante INT NOT NULL,
FOREIGN KEY (ca_id)REFERENCES concurso (con_id),
FOREIGN KEY (ca_cantante) REFERENCES cantante (can_id)
);
INSERT INTO cancion VALUES (102, "Amiga", "Balada", "1990", 101);
INSERT INTO cancion VALUES (102, "Las locuras mías", "vallenato", "2019", 102);
INSERT INTO cancion VALUES (102, "Gracias a ti", "popular", "2020", 103);
INSERT INTO cancion VALUES (102, "Tu", "popular", "2019", 104);
INSERT INTO cancion VALUES (102, "La gata bajo la lluvia", "Balada", "1981", 105);
虽然它有外键,但它们不是查询所必需的,因为我只需要按字母顺序排列歌曲和舞蹈的名称。
看起来您希望对数据进行整体排序。您还没有指定您的数据库,但这将在大多数数据库中工作:
SELECT ca_nombre as nombre
FROM cancion
UNION ALL
SELECT bai_nombre
FROM baile
ORDER BY nombre ASC;
但是,有些数据库要求UNION ALL
在子查询中:
SELECT nombre
FROM (SELECT ca_nombre as nombre
FROM cancion
UNION ALL
SELECT bai_nombre
FROM baile
) n
ORDER BY nombre;