簡體   English   中英

使用JOIN對多個表進行SQL查詢

[英]SQL query for multiple tables using JOIN

需要有關SQL查詢的幫助-目前我的查詢可用於兩個表,我想添加第三個表,但是我不知道該怎么做,我嘗試了很多次,但是給出了錯誤...

我將嘗試以更准確的方式顯示所有代碼:

SQL查詢

$sql = "SELECT main.nid, main.title FROM {node} AS main
                    LEFT JOIN {localizernode} AS lang ON main.nid = lang.nid 
                    WHERE main.type = 'drug' AND main.title LIKE '%s%%' AND lang.language = '%s' AND main.status = 1 
                    ORDER BY main.title ASC";

$result = db_query($sql);
while ($product = db_fetch_object($result)) {
// build up the list
$product_list .= '<li>'.$product->title.'</li>';
} 

該查詢根據類型為毒品的網站語言從表NODE中獲取所有數據。 然后給我一張桌子旁邊所有物品的清單,按標題排序

表“節點”:

nid | vid | 類型 標題| 狀態

9 | 9 | 毒品| 標題1 | 1

15 | 15 | 毒品| 標題2 | 1


我要在QUERY中使用/包含的表“ content_type_drug”如下所示:

vid | nid | 價值| image_title

9 | 9 | 文字值| imagename.jpg

15 | 15 | 文字值5 | imagename3.jpg

我希望它從“ content_type_drug”中獲取以下值:“ value”,“ image_title”並將它們顯示在上面的列表中:

$result = db_query($sql);
    while ($product = db_fetch_object($result)) {
    // build up the list
    $product_list .= '<li>'.$product->title.$product->value.$product->image.'</li>';
    }

我在尋求幫助,而不是尋求完整的解決方案,請給我任何想法。

我了解到您需要加入三個表。 所以查詢將是

$sql = "SELECT main.nid, main.title, ctd.value,ctd.image_title FROM {node} AS main
        LEFT JOIN {localizernode} AS lang ON main.nid = lang.nid 
        INNER JOIN {content_type_drug} ctd ON main.vid = ctd.vid 
        WHERE main.type = 'drug' AND main.title LIKE '%s%%' 
        AND lang.language = '%s' AND main.status = 1  ORDER BY main.title ASC";

我假設vid和nid是外鍵。 您可以使用外鍵替換此子句

要添加新表,您只需要添加另一個聯接。

LEFT JOIN {content_type_drug} AS drug ON drug.vid = main.vid 

因此,您的完整查詢將如下所示:

SELECT main.nid, main.title, drug.value, drug.image_title FROM {node} AS main
                LEFT JOIN {localizernode} AS lang ON main.nid = lang.nid 
                LEFT JOIN {content_type_drug} AS drug ON drug.vid = main.vid 
                WHERE main.type = 'drug' AND main.title LIKE '%s%%' AND lang.language = '%s' AND main.status = 1 
                ORDER BY main.title ASC

希望這可以幫助 :)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM