我的MySQL數據庫包含兩個表:user
和coupon
(一對一關係)。插入一對一關係
我想選擇所有沒有優惠券的用戶並創建一個新的(隨機的和唯一的)用戶。
user TABLE:
___________________________________
| id | name | coupon_id |
-----------------------------------
1 John 5
2 Mary (null) // Need to create one coupon.
3 Doe 2
4 Max (null) // Need to create one coupon.
5 Rex 1
7 Bill (null) // Need to create one coupon.
coupon TABLE:
______________________________________________
| id | code (random 6-chars - unique) |
----------------------------------------------
1 80k2ni
2 0akdne
5 nk03jd
快捷鍵:
選擇所有用戶無優惠券:SELECT * from user WHERE coupon_id IS NULL;
生成隨機的6個字符的字符串(MySQL的):LEFT(sha1(rand()), 6)
。
我有,你需要使用感受[INSERT ... SELECT](https://dev.mysql.com/doc/refman/5.6/en/insert-select.html)雖然我現在還沒有寫出模擬查詢的設置 –
@ Memor-X謝謝你試圖幫助,但我還沒有想出如何使它工作。請您在有空的時候寫下;) –
'SELECT u.is,u.name,COALESCE(u.coupon_id,LEFT(sha1(rand()),6))FROM user u LEFT JOIN coupon c on u.coupon_id = c.id'也許你想要這個查詢它不是很清楚 – Mihai