我有一個名爲website
的表,其中包含一些關於網站的數據。該表的列爲:id,網站,quick_url,user_id,狀態等。SQL加入無法弄清楚
表中的每個網站都是由用戶添加的,該用戶保存在user_id列中。
我有另一個表blocks
只有3列:id, user_id, website_id
。
我想從website
表中獲得所有網站,這些網站不是由給定的user_id添加的,而是僅包含未被給定的user_id阻止的網站。因此,那些沒有被特定用戶添加或被他阻止的網站。
這裏是我試過:
SELECT * FROM website LEFT OUTER JOIN blocks ON tbl_website.userid = blocks.user_id WHERE website.user_id = blocks.user_id AND blocks.user_id = NULL AND website,user_id != '177' LIMIT 500;
它並沒有給我想要的結果...
首先,我試圖做這樣的:
SELECT * FROM tbl_website WHERE id<>(SELECT website_id from tbl_website_blocks WHERE user_id = '177')
,這使得更多的意義對我來說比我以前的查詢,但我得到這個錯誤:子查詢返回多個1行
我想你不能在SQL查詢中有「循環循環」。
我知道我可以做兩個查詢,並過濾結果,但我想盡可能從SQL語言做到這一點,這樣我就不會「超載」服務器。
任何建議,將不勝感激。
感謝的人,它的工作原理是這樣的。幽靈有點快。 – user1812076 2015-04-03 14:39:51
Actualy我更快:P很高興幫助。 – Nightmaresux 2015-04-03 14:42:02
你是對的:)我接受了它。 – user1812076 2015-04-03 15:18:23