連接就是將兩個表按照某個公共字段來拼成一個大表。
左連接就是在做連接是以左邊這個表為標准,來遍歷右邊的表。
左連接,自連接
SELECT * FROM test_visit t1 LEFT JOIN test_visit t2 ON t1.uid = t2.uid結果:
用戶訪問記錄:
問題:查出看了湖南衛視但沒有看北京衛視的用戶信息
邏輯:先通過左連接將看了湖南衛視和北京衛視的查出來,然後再將看了湖南衛視但不在剛才查出的結果中的用戶查出來。
SELECT * FROM test_visit WHERE channel='湖南衛視' AND uid NOT IN ( SELECT DISTINCT t1.uid FROM test_visit t1 LEFT JOIN test_visit t2 ON t1.uid = t2.uid WHERE t1.channel='湖南衛視' AND t2.channel='北京衛視' )結果:
各位大神,有什麼好的方法,說說吧,我感覺這個不是最優的