2013-03-12 61 views
1

我有一個表叫db.datadb.infodb.data表的每個條目都有一個namedateadded列。 info表具有每個名稱的namestatus列(狀態爲n)。 我想從db.data表中獲取所有添加到該數據庫的名稱的數據,但前提是狀態(db.status中的狀態)爲n。從兩個表中拉SQL數據

我一直在環顧四周,發現JOIN,但這似乎只適用於兩個表中的數據是相同的。在這裏,名稱是相同的,但我想從db.data中提取數據,但只有在'名稱'單元(它在兩個表中)的狀態設置爲'n'

非常感謝advence

+0

有一個共同的兩列之間?例如,數據庫表可以有一個整數ID,然後信息表將使用該ID來引用數據庫表中的正確記錄。如果沒有,你將不得不依靠名字或其他共同性來關聯這兩個表。 – 2013-03-12 17:37:35

+0

2個表之間是否存在外鍵關係?你想加入名稱字段還是其他字段? – TabbyCool 2013-03-12 17:37:54

+0

是的,這兩個表中都有'Name'列。因此db.data將有10個條目由一個名字組成,例如鮑勃。 db.info會爲Bob提供1條關於他的信息,這些信息是y或n狀態列中的信息之一。我需要從db.data提供的所有條目,但db.info中的狀態字段設置爲n – user1563414 2013-03-12 17:42:13

回答

1

我覺得這之間的名字加入是你想要什麼:

select d.name, d.dateadded 
    FROM db.info i, db.data d 
    WHERE i.name = d.name 
    AND i.status = 'n'; 
1

據我所知,每個name的數據是對於這兩個表都是一樣的。因此,一個JOIN應該在這裏工作:

SELECT db.data.* 
FROM db.data 
INNER JOIN db.info ON db.data.name = db.info.name 
WHERE db.info.status = 'n' 
+0

當新的答覆欄彈出時,我正在鍵入相同的查詢! – TabbyCool 2013-03-12 17:40:27

1

你可以用兩個表

SELECT d.name, d.date 
FROM db.data d 
    JOIN db.info i ON d.name = i.name 
WHERE i.status = 'N' 
ORDER BY d.date