를 반환하는 기록을 그룹화 나는 다음과 같은 두 개의 테이블이 있습니다MySQL은 그룹 BY가있는
Products
+--------------------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------------------------+--------------+------+-----+---------+-------+
| id | int(6) | NO | PRI | NULL | |
| productName | varchar(255) | YES | | NULL | |
| landColour | varchar(255) | YES | | NULL | |
+--------------------------+--------------+------+-----+---------+-------+
Skus
+--------------+---------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------------+---------------+------+-----+---------+-------+
| id | int(11) | NO | PRI | NULL | |
| product_id | int(11) | NO | MUL | NULL | |
| colour | varchar(255) | NO | MUL | NULL | |
| fit | varchar(255) | NO | MUL | NULL | |
| size | decimal(10,1) | NO | MUL | NULL | |
| stock_status | varchar(255) | NO | MUL | NULL | |
| image | varchar(255) | NO | | NULL | |
+--------------+---------------+------+-----+---------+-------+
Product Data
+----+--------------+------------+
| id | productName | landColour |
+----+--------------+------------+
| 1 | Running Shoe | Red |
| 2 | Smart Shoe | Green |
| 3 | Casual Shoe | Blue |
+----+--------------+------------+
Sku Data
+----+------------+--------+--------------+------+--------------+----------------+
| id | product_id | colour | fit | size | stock_status | image |
+----+------------+--------+--------------+------+--------------+----------------+
| 1 | 1 | Red | Standard Fit | 5 | In-Stock | /img/img1.jpg |
| 2 | 1 | Green | Standard Fit | 5 | In-Stock | /img/img2.jpg |
| 3 | 1 | Blue | Standard Fit | 5 | In-Stock | /img/img3.jpg |
| 4 | 1 | Red | Standard Fit | 6 | Out-of-Stock | /img/img4.jpg |
| 5 | 1 | Green | Standard Fit | 6 | In-Stock | /img/img5.jpg |
| 6 | 1 | Blue | Standard Fit | 6 | In-Stock | /img/img6.jpg |
| 7 | 2 | Red | Standard Fit | 5 | Out-of-Stock | /img/img7.jpg |
| 8 | 2 | Green | Standard Fit | 5 | Out-of-Stock | /img/img8.jpg |
| 9 | 2 | Blue | Standard Fit | 5 | Out-of-Stock | /img/img9.jpg |
| 10 | 2 | Red | Standard Fit | 6 | In-Stock | /img/img10.jpg |
| 11 | 2 | Green | Standard Fit | 6 | Out-of-Stock | /img/img11.jpg |
| 12 | 2 | Blue | Standard Fit | 6 | In-Stock | /img/img12.jpg |
| 13 | 3 | Red | Standard Fit | 5 | In-Stock | /img/img13.jpg |
| 14 | 3 | Green | Standard Fit | 5 | In-Stock | /img/img14.jpg |
| 15 | 3 | Blue | Standard Fit | 5 | In-Stock | /img/img15.jpg |
| 16 | 3 | Red | Standard Fit | 6 | In-Stock | /img/img16.jpg |
| 17 | 3 | Green | Standard Fit | 6 | In-Stock | /img/img17.jpg |
| 18 | 3 | Blue | Standard Fit | 6 | In-Stock | /img/img18.jpg |
+----+------------+--------+--------------+------+--------------+----------------+
Desired Results
+------------+--------+--------+------+----------------+
| product_id | sku_id | colour | size | image |
+------------+--------+--------+------+----------------+
| 1 | 1 | Red | 5 | /img/img1.jpg |
| 1 | 5 | Green | 6 | /img/img5.jpg |
| 2 | 10 | Red | 6 | /img/img10.jpg |
| 3 | 15 | Blue | 5 | /img/img15.jpg |
| 3 | 18 | Blue | 6 | /img/img18.jpg |
+------------+--------+--------+------+----------------+
내가 크기별로 그룹화 fit = 'Standard Fit'
및 stock_status = 'In-Stock'
모두의 SKU를 검색하기 위해 노력하고 있지만, skus.colour 필드에 일치하는 경우 그러면 products.landColour 열이 내 선호 레코드입니다. 목표는 각 제품에 대해 재고가있는 모든 크기에 대해 sku 레코드를 갖도록하고, 선호하면 토지 색상과 동일한 색상을 사용하는 것입니다. 나는 완전히 당신이 뭘 하려는지 따르지 않는
SELECT
p.productName AS name,
p.id AS product_id,
IF(s1.size IS NULL, s2.size, s1.size) AS size,
IF(s1.image IS NULL, s2.image, s1.image) AS image,
IF(s1.fit IS NULL, s2.fit, s1.fit) AS fit
FROM products p
LEFT JOIN skus s1 ON
p.id = s1.product_id
AND s1.stock_status = 'In-Stock'
AND s1.colour = p.landColour AND
s1.fit = 'Standard Fit'
LEFT JOIN skus s2 ON
p.id = s2.product_id
AND s2.stock_status = 'In-Stock'
AND s2.fit = 'Standard Fit'
GROUP BY size
HAVING (image IS NOT NULL AND size IS NOT NULL)
는 http://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-to-me-to-be-a-very보기 -simple-sql-query? noredirect = 1 # comment391934_333952 – Strawberry
샘플 데이터와 원하는 결과는 원하는 것을 설명하는 데 도움이됩니다. –
몇 가지 샘플 데이터와 원하는 결과를 추가했습니다. – geoffs3310