簡體   English   中英

MySQL選擇查詢基於來自不同表的值

[英]Mysql Select Query based on value from different table

這是一個非常基本的問題,如果有人已經問過這個問題,我深表歉意。

我有一個名為“ item”的主表。 它具有所有與項目相關的信息,例如目錄,描述,可用性,價格等

我還有另一個稱為“活動列表”的表,該表只有一個列“目錄”。

現在,我想基於“目錄”表中的“目錄”從“項目”表中提取“目錄”,“描述”和“可用”。 或換句話說,“活動列表”表中的所有內容以及“項目”表中的匹配記錄。

我已經研究了很多,但是找不到有效的查詢。 我正在使用以下查詢。

SELECT t1.catalog, t1.description, t1.avail
FROM item t1
LEFT JOIN activelisting t2
ON t1.`Catalog` = t2.`Catalog`;

任何幫助,將不勝感激...

嘗試使用INNER JOIN而不是LEFT JOIN INNER JOIN將保證兩個表中都存在要連接的值。

SELECT i.catalog, i.description, i.avail
FROM item i
INNER JOIN activelisting a ON i.catalog = a.catalog

LEFT JOIN將返回左表中的所有結果item ,如果沒有連續activelisting具有相同catalog ,然后它會只返回NULL這些列。 您當前未選擇潛在的NULL列,因此,當前結果基本上應該只是item所有條目。

SELECT t1.catalog, t1.description, t1.avail FROM item t1 RIGHT OUTER JOIN activelisting t2 ON t1.Catalog = t2.Catalog;

要么

SELECT t1.catalog, t1.description, t1.avail FROM activelisting t2 LEFT OUTER JOIN item t1 ON t1.Catalog = t2.Catalog;

第一個用於良好的可視化工具。 您必須使用外部聯接,只是因為您從活動列表中獲取所有目錄,而從項目表中獲取匹配的目錄。

第二個更好的理解。

暫無
暫無

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

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