我在我的page_views表里有這樣的內容
id cookie_id item_id content
======================================
1 123456 product_1 some
2 123456 product_2 some[/span
3 654321 product_1 some
4 654321 product_2 some[/span
5 654321 product_3 some
6 444444 product_5 some
7 222222 product_7 some
8 222222 product_2 some
9 333333 product_2 some
我想讓客戶也查看盒子,我的變數中只有當前頁面的product_id。現在,一個新的用戶來到product_2,他/她的cookie_id為333333。 在這種情況下,id=1 & 5 & 7的專案(沒有重復的)應該被獲取和顯示。
$fetch_data = $conn-> query("SELECT item_id FROM page_veiws WHERE item_id IN (SELECT item_id FROM page_veiws GROUP BY item_id HAVING COUNT(cookie_id) > 1) ")。
但這并不奏效。(當然,我確實理解了foreach回圈來顯示獲取的盒子),我只是希望查詢能獲取它。
我怎樣才能實作這些目標?
請幫助我?
請幫助我?
uj5u.com熱心網友回復:
SELECT
same_cookie.item_id。
MIN(same_cookie.id) AS id
FROM[/span
page_views AS same_products
行內 JOIN
page_views AS same_cookie
ON same_cookie.cookie_id = same_product.cookie_id
AND same_cookie.item_id !='Product_2'
WHERE
same_product.item_id = 'Product_2'
and same_product.cookie_id !=333333
GROUPBY
同_cookie.item_id
where子句將same_product過濾為所有也看了產品2的行,除了當前cookie(避免顯示當前用戶之前看的其他專案)。
然后,獲取這些cookie所查看的所有產品,除了產品2(避免顯示已經被查看的產品)。
GROUP BY 來獲取每個產品的一行(避免重復)。MIN(id)獲得第一個瀏覽該產品的頁面。
回傳。
回傳...
| Product_1 | 1|
| 產品_3 | 5 |
| 產品_7 | 7 |
如果你不想要產品列,請洗掉SELECT子句的第一行,但在GROUP BY中保留它。
。作業實體: https://dbfiddle.uk/?rdbms=mysql_5.7&fiddle=daa47642433bee1cbb978b929934a088
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/320162.html
標籤:
上一篇:MySQL。用4個表和共同欄位連接:row_number()
下一篇:不存在后的SQL查詢的連接結果
