-2
我有這些表,並在一個帶有用戶名和密碼的查詢(登錄時)我想從右表中選擇數據。 例如:在用戶表中有字段權限。 管理員擁有權限1,供應商擁有權限2,並且客戶擁有權限3. 謝謝。我需要MYSQL查詢解決方案
+------------+--+----------+--+-----------+--+-------------+
| user | | admin | | vendor | | customer |
+------------+--+----------+--+-----------+--+-------------+
| id_user | | id_admin | | id_vendor | | id_customer |
| username | | id_user | | id_user | | id_user |
| password | | name | | name | | name |
| permission | | surname | | surname | | surname |
+------------+--+----------+--+-----------+--+-------------+
很明顯,您的解決方案將會是一些帶有一些JOIN子句的SQL語句,但在您更好地解釋關係需求之前,不可能專門爲您提供幫助。 'user.permission'如何映射到'admin'「權限」? –
好的謝謝。我試過了,它適用於這些查詢。 $ query =「SELECT * FROM user INNER JOIN admin ON admin.id_user = user.id_user WHERE user ='$ username'and password ='$ password'limit 1」;但我會添加 「如果(權限== 1)爲管理員或如果(權限== 2)供應商或如果(權限== 3)爲客戶」 並執行單個查詢,使自動選擇正確的表,檢索數據。 – Miks
基於像這樣的列值對不同表進行條件連接被認爲是非常糟糕的做法,並且通常在不正確的關係數據庫設計中存在根本原因。可以將它壓縮爲僅僅一個SQL查詢,但是它會很昂貴(每次總是不需要2個連接時會加入3個連接),並且需要對結果進行空檢查。如果不進行任何模式更改,最好將其作爲2階段查詢。首先查詢用戶表,然後根據第一個查詢結果的'permission'值,僅查詢所需的表。 –