2017-03-28 15 views
0

嗨,我需要的用戶可以通過輸入一個獨特的案例代碼以註冊從案件表訪問的情況。數據庫需要檢查的情況下,代碼存在,如果它不使用它的ID來查看用戶是否已經註冊到它MySQL的IF案例Exsists檢查用戶是否連接

cases 
     +----+-----------+-------------+ 
     | id | case_code | case_name | 
     +----+-----------+-------------+ 
     | 1 | THEC12C | Test Case 1 | 
     | 2 | ABCD23A | Test Case 2 | 
     +----+-----------+-------------+ 

case_creditors 
     +----+---------+-------------+ 
     | id | case_id | creditor_id | 
     +----+---------+-------------+ 
     | 1 |  1 |   3 | 
     | 2 |  2 |   1 | 
     +----+---------+-------------+ 

所以,如果債權人1次嘗試添加THEC12C它會添加一條記錄,以區分用戶

case_creditors 
+----+---------+-------------+ 
| id | case_id | creditor_id | 
+----+---------+-------------+ 
| 1 |  1 |   3 | 
| 2 |  2 |   1 | 
| 3 |  1 |   1 | 
+----+---------+-------------+ 

,如果他們嘗試添加相同的情況下,再次將返回一個排,所以我可以告訴PHP該用戶已經與此情況下

我知道我可以使用兩個查詢來完成這個 1註冊)情況代碼是否存在於表格-t中街/假 2)如果真有在case_creditors記錄 - 真/假 3}如果屬實

+0

那麼你的問題是什麼?你正在尋找SQL來完成查詢,或者想要了解更多/關於如何完成任務的不同想法? –

回答

0

「如果是假的附加CASE_ID條記錄和creditor_id來case_creditors已註冊」我會做完全不同。

  1. 上的case_creditorscase_idcreditor_id字段創建一個單一unique index。這將防止插入重複的記錄。

  2. 使用以下insert ... select ... query to insert data into case_creditors`表。

如果它帶有重複鍵錯誤返回,那麼案件已經被分配給債權人。如果受影響的行是0,則case_code不存在。如果受影響的行是1,那麼本案交由債權人:

insert into case_creditors (case_id, creditor_id) 
select id, ... from cases where case_code='...' 

替代債權人ID代替第一...,並在放置第二個...的情況下代碼。

+0

乾杯陰影沒有想到:)我應該花更多的時間在計劃階段,但現在都很好 –