2016-06-08 29 views
-3

有一個mysql命令行它應該打印TXT行當STATUS行是2000在另一個表中有相同的ID = 1,它喜歡連接到另一個表;檢查sql表格

第一個表(tb_users):

ID | TXT 
---------- 
1 | 9 

二表(tb_check):

ID | STATUS 
---------- 
1 | 2000 

我的mysql命令行:

SELECT * FROM `tb_users` ORDER BY RAND() LIMIT 1 
+2

什麼是'ORDER BY ORDER BY'? – Saty

+0

@Saty錯字...更正。 – PrisonPants

+2

非常好。那裏有什麼問題嗎? – Dave

回答

2

查詢應該是這樣的,

SELECT * 
FROM tb_users TU 
    JOIN tb_check TC ON TU.id=TC.id 
WHERE TC.STATUS=2000; 

您已使用JOIN以獲得連接表的結果。通過連接表格我的意思是我們需要使用foreign key

+3

爲什麼?一個好的答案***將總是解釋所做的事情以及爲什麼這樣做,不僅是爲了OP,還是爲了將來訪問SO。 –

+0

請加上'ORDER BY RAND()'; – PrisonPants

+0

這對我來說絕對是挑剔的,但這裏就是這樣。只要有可能,在查詢時不要使用RAND()。它是O(n)類型,可以顯着減慢查詢本身。 – Andrew

0

嘗試......

SELECT * FROM tb_users恩,tb_check TC WHERE TU.ID = TC.ID AND TC.status = 2000 ORDER BY RAND()LIMIT 1;