2011-11-04 114 views
0

我有我的網站在每一頁的頂部這2個SQL查詢:sql表連接?

$sql_result = mysql_query("SELECT * FROM accounts WHERE id='$user_ID'", $db); 
$rs = mysql_fetch_array($sql_result); 

$level = $rs['level']; 
$name = $rs['name']; 

$sql_result2 = mysql_query("SELECT * FROM members WHERE name='$name'", $db); 
$rs2 = mysql_fetch_array($sql_result2); 

if (mysql_num_rows($sql_result2) == 0) { 
    header("Location: dead.php"); 
} 

// get data 

首先它檢查賬目表,看看球員有一個帳戶。如果他這樣做,它會檢查他是否有成員的球員。如果沒有找到記錄,他就會被殺死。

這樣好嗎?或者我可以通過提出一個查詢來加速事情嗎?

我不知道該怎麼辦呢..

回答

2

是的,這應該是一個查詢。一個JOIN是非常簡單的在這裏:

SELECT members.*, accounts.level, accounts.name FROM members 
    JOIN accounts ON members.name = accounts.name 
WHERE accounts.id = '$user_ID'; 

確保accounts.name被索引,但是。另一種方法是將account_id列添加到members並加入,因爲大概accounts.id已被編入索引。

+0

什麼是索引意味着什麼 – user1022585

+0

@ user1022585 http://dev.mysql.com/doc/refman/5.0/en/mysql-indexes.html –

+0

accounts.id設置爲PRIMARY,那是什麼意思? – user1022585

0

如果您在加入時遇到問題,可以使用「SELECT。FROM WHERE。=。」。您的代碼可能看起來像「SELECT accounts。,members。 FROM accounts,members WHERE accounts.memberID = members.memberID」。當然,我假設你的成員表有一個id列。