Próbuję wykonać złożone zapytanie z dwóch tabel ... To pytanie z quizu umiejętności.
stół
**Orders Customer**s
id id
date first_name
shipping_amount last_name
order_status city
customer_id (Customers.id) state
wydajność
-----------+------------+
| State | # Orders |
+-----------+------------+
| NY | 55 |
| CA | 40 |
| NJ | 33 |
| FL | 21 |
| MO | 12 |
+-----------+------------+
Pracowałem nad moim zapytaniem i wygląda to tak ...
select DISTINCT state, (select count(id) Orders
from customers
group by state
ORDER BY Orders DESC) FROM Customers
Dał mi błąd, który mówi, że podkwerenda zwraca więcej niż 1 wiersz
Odpowiedzi:
4 dla odpowiedzi № 1Spróbuj tego:
SELECT c.state, COUNT(o.id) AS Orders
FROM Customers c, Orders o
WHERE o.customer_id = c.id
GROUP BY state
ORDER BY Orders DESC
Zapytanie podrzędne nie jest konieczne.
0 dla odpowiedzi nr 2
SELECT `Customers`.`state`, count(`Orders`.`id`)
as `orders FROM `Customers`
LEFT JOIN `Orders` ON `Customers`.`id` = `Orders`.`customer_id`
GROUP BY `Customers`.`state`
ORDER BY `orders` DESC
0 dla odpowiedzi № 3
Spróbuj tego:
select DISTINCT state, (select count(id) as cnt, Orders from customers group by
state ORDER BY Orders DESC) Temp FROM Customers
0 dla odpowiedzi nr 4
SELECT c.state as State, COUNT(o.id) as NumOrders
FROM orders o
LEFT JOIN customers c ON (c.id = o.customer_id)
GROUP BY c.state