1
這可能是一個簡單的答案,但我一直在這個問題上,在過去的幾天,和它開始把我發瘋確定什麼是一個多對多的關係
我有一個數據庫多對多關係
------------- --------------------- ------------------- |Images | |user2img | |User | ------------- --------------------- ------------------- |imgID | |id | |UserID | |imgURL | |imgID | |UserName | |imgAv | |UserID | |UserEmail | ------------- --------------------- -------------------
user2img表指示允許用戶查看哪個圖像。
我試圖確定一個SQL查詢,它將列出每個圖像(一次不重複)並告訴我指定的用戶是否有權查看該圖像。
所以輸出一樣,
(其中userid = '1')
---------------------------- |imgID | imgURL | access | ---------------------------- |1 | xxx | Yes | |2 | yyy | No | |3 | qqq | Yes | |4 | rrr | Yes | |5 | www | No | |6 | sss | Yes | etc... ----------------------------
感謝,
這也不會給我一個輸出,使所有的用戶沒有ID爲1(用戶2,3,4,5,6,7,8等...以及想念imgs用戶沒有在user2img表中列出? –
是的,但在你的問題的例子中 - 如果沒有在user2image表中映射,所有用戶都不是這樣的情況嗎?如果UserId是** NOT **出現在表格中,那麼用戶無法訪問該圖像,對於否定問題沒有其他解決方案。您可以將UNION重寫爲** left **或** right ** join,但它會是相同 - UserId爲空的每個結果都將是user2image表中所有其他用戶的圖像。我認爲您只需檢查訪問權限 - 如果使用** inner join **的*連接*存在。 – pasty