簡體   English   中英

如何通過連接mysql中的兩個表來選擇特定的值范圍?

[英]How to select particular range of values from joining two tables in mysql?

我有兩個表,我必須根據查詢從兩個表中選擇值

我有兩個表,如tab1,tab2 ,每個表都有相同的列name,age,job,gender tab 2我有額外的列place

我必須從tab1和tab2中選擇性別為男性的所有值

怎么做?

SELECT tab1.name,tab1.gender,tab1.age,tab2.place FROM tab1 INNER JOIN tab2 ON tab1.gender=mhdetail.gender where gender='male';

這個對嗎?

您需要更具體地了解JOIN條件。 如果您在兩個表中都沒有ID,但名稱,性別,年齡的組合是唯一的,那么您可以這樣做

SELECT t1.name,
       t1.gender,
       t1.age,
       t2.place 
  FROM tab1 t1 LEFT JOIN 
       tab2 t2 ON t1.gender = t2.gender AND
                  t1.name = t2.name AND
                  t1.age = t2.age    
 WHERE t1.gender='male';

這是SQLFiddle

你不是在尋找聯盟。 你想要一個Union

SELECT *
FROM MyTable1
WHERE Gender = 'Male'

UNION -- Or 'UNION ALL' if you want duplicates.

SELECT *
FROM MyTable2
WHERE Gender = 'Male'

如果您有2個表,並且需要來自2個表的信息,則會使用連接,但只有一個表包含性別:

SELECT *
FROM   MyTable1
JOIN   MyTable2 ON MyTable1.ID = MyTable1.ID
WHERE  MyTable1.Gender = 'Male'

您的查詢將導致許多重復行。 因為它會成為多對多的關系。 如果這兩個表通過主鍵和外鍵關系等任何方式相關,則使用這些鍵進行連接。 否則使用聯盟作為上面的答案。

暫無
暫無

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

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