두 테이블이 있습니다 : orders
및 oldorders
. 둘 다 같은 방식으로 구성됩니다. 이 두 테이블을 결합한 다음 다른 테이블에 결합하려고합니다 : users
. 이전에 나는 orders
과 users
을 가지고 있었고, oldorders
을 현재 코드에 구h 주려고합니다.두 테이블의 결합에 테이블 조인?
SELECT u.username, COUNT(user) AS cnt
FROM orders o
LEFT JOIN users u
ON u.userident = o.user
WHERE shipped = 1
AND total != 0
GROUP BY user
이 모든 사용자가 테이블 orders
에서 만든 제로가 아닌 전체 주문의 수를 발견,하지만 난 orders
과 oldorders
의 결합이 원하는. 이것을 어떻게 할 수 있습니까? 이것에 대한
create table orders (
user int,
shipped int,
total decimal(4,2)
);
insert into orders values
(5, 1, 28.21),
(5, 1, 24.12),
(5, 1, 19.99),
(5, 1, 59.22);
create table users (
username varchar(100),
userident int
);
insert into users values
("Bob", 5);
출력은 다음과 같습니다
create table oldorders (
user int,
shipped int,
total decimal(4,2)
);
insert into oldorders values
(5, 1, 62.94),
(5, 1, 53.21);
두 테이블의 조합에서 실행 예상 출력은 다음과 같습니다 :
+----------+-----+
| username | cnt |
+----------+-----+
| Bob | 6 |
+----------+-----+
+----------+-----+
| username | cnt |
+----------+-----+
| Bob | 4 |
+----------+-----+
oldorders
테이블을 생성 한 후
주스 거기에 노조를 구h주게하는 방법이나 방법을 모릅니다. orders
에서 쿼리를 실행하는 대신 orders union oldorders
에 있어야합니다. 두 테이블 사이에 교차가 없다고 가정 할 수 있습니다.
SELECT u.username, COUNT(user) AS cnt
FROM
(
SELECT * FROM orders
UNION
SELECT * FROM oldorders
) o
LEFT JOIN users u ON u.userident = o.user
WHERE shipped = 1
AND total != 0
GROUP BY user;
먼저 UNION
테이블 orders
사이 oldorders
를 사용하여 결합 된 주문을받을 :
의 순서를 변경해야 다음 아직 주문한하지 않을 수 있습니다 사용자를 포함한 모든 사용자에 대해
<user,total orders>
합니다 , 비록 그것에 어떤 문서를 찾을 수 없습니다. – kiwicomb123