[英]MySQL: Difference between relating and not relating tables
我有2個表:“ catalog”和“ press”被“ press”子表,並且它們與“ press”內的id_catalog(指向目錄中的“ id”)相關。
我設法在目錄(“名稱”)上得到一個字段,並像這樣用它們的“按”子項來測試海豚:
$query="SELECT catalog.book_title, press.* FROM catalog, press WHERE press.id_catalog = $id";
$book_title = mysql_result($result,$i,"_catalog.book_title");
$media_name = mysql_result($result,$i,"_press.media");
$type = mysql_result($result,$i,"_press.type");
$url = mysql_result($result,$i,"_press.url");
echo $book_title $media_name $type $url;
$book_title = mysql_result($result,$i+1,"catalog.book_title");
$media_name = mysql_result($result,$i+1,"press.media");
$type = mysql_result($result,$i*+1*,"press.type");
$url = mysql_result($result,$i*+1*,"press.url");
echo $book_title $media_name $type $url;
在查詢中,$ id由GET_ []傳遞,返回期望的值
這里的問題是:如果我不執行數據庫中的關系該怎么辦? (使用id_catalog上的INDEX)該查詢有效嗎?
我正在回答這個問題,因為我想如果我不做這種關系,我可以匹配這些字段並使它正常工作……還是不?
我認為您的問題不在於索引(盡管這將有助於提高性能)。 我認為問題在於此查詢產生的是笛卡爾積-您沒有關聯這兩個表:
SELECT catalog.book_title, press.*
FROM catalog, press WHERE press.id_catalog = $id
相反,它應該類似於:
SELECT catalog.book_title, press.*
FROM catalog
JOIN press ON catalog.id = press.id_catalog
WHERE press.id_catalog = $id
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.