簡體   English   中英

如何使用mysql從兩個表中獲取唯一數據?

[英]How to get unique data from two tables using mysql?

我有兩個表,一個表有項目的詳細信息是唯一的,另一個表有這個項目的圖像,但有多個。

我想要一個項目的一個圖像。

數據結構:

Table 1:

Project_id  Project_Name 
291          Demo1
292          Demo2

Table 2:

Project_id   Img_name   Attr_id
291          p1.png     11
291          p2.png     12

我想得到attr_id為11的圖像

所以輸出會是

project_id    Project_name     Img_name    Attr_id
291           Demo1            p1.png       11

那怎么做?

在你的情況下你可以使用mysql的JOIN函數:

SELECT a.Project_id, a.Project_Name, b.Img_name, b.Attr_id
FROM table2 b INNER JOIN Table1 a ON ( b.Project_id = a.Project_id)
WHERE b.Attr_id = 11

或者您可以通過WHERE ... AND -Construction過濾您的選擇:

select * from table1 a,table2 b where a.project_id = b.project_id and attr_id=11

兩種方式都會產生相同的輸出:

291  Demo1  p1.png  11

你可以有一個join這兩個表用於獲取結果:

"select t1.project_id,t1.project_name,t2.img_name,t2.attr_id
from table1 t1,table2 t2
where t1.project_id=t2.project_id
and t2.attr_id=11";

如果您不想專門查詢Attr_id,請嘗試使用此方法。 應該為您提供與項目相關的最低Attr_id的圖像

SELECT table1.project_id, table1.project_name, image.Img_name, image.Attr_id  
FROM table1 
    INNER JOIN (SELECT * FROM table2 ORDER BY Attr_id ASC LIMIT 1) 
        AS image ON table1.project_id = image.project_id 
WHERE table1.project_id = 291

使用mysql JOIN

select a.Project_id,a.Project_Name,b.Img_name,b.Attr_id   from table1 a join table2 b  ON a.project_id = b.project_id where b.attr_id=11

暫無
暫無

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

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