[英]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';
你不是在尋找聯盟。 你想要一個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.