簡體   English   中英

后續:mySQL SELECT幫助。 如果存在或存在?

[英]Followup: mySQL SELECT help. IF or EXISTS?

我在這個問題上對我的SQL SELECT幫助有所幫助。 如果存在或存在? 之前和現在,我對此都有一個后續問題。 這又是表結構:

<code>
* user
user_id
name

* client
client_id
name

* user_client
user_client_id
user_id
client_id
</code>

現在,我不想與任何其他表連接,我只想獲取權限,結果集應該返回用戶允許的客戶端,或者返回該用戶允許的所有客戶端ID(如果該用戶存在並且該用戶沒有任何條目)在user_client上。 這意味着,如果user_client上沒有user_id的行,則他可以訪問所有客戶端。

我無法弄清楚如何在沒有表連接的情況下使它正常工作,就像上一個問題一樣(在這種情況下為消息)

感謝大伙們!

編輯:好的,試圖更好地解釋:讓我們在表上說

<code>
user_id 
1
2
3

client_id
10
11
12
13
14

On user_client table
user_id    client_id
1          11
1          13
3          14
3          10
</code>

我希望結果為:如果user_id為1,它將具有包含11和13的結果集。如果user_id為3,它將具有包含14、10的結果集。如果user_id為2,它將具有包含10的結果集, 11、12、13和14。

我希望我能解釋得更好。

您應該在問題中提供更多細節,以便人們真正理解您想要什么。

無論如何,查詢非常簡單。 只需從上一個問題中查詢,然后刪除不必要的聯接即可。

 SELECT client_id
   FROM user_client
  WHERE user_id = :user_id

 UNION

 SELECT client_id
   FROM client
   JOIN `user` U
  WHERE U.id = :user_id
    AND NOT EXISTS (
            SELECT *
              FROM user_client
             WHERE user_id = U.id
      )

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM