2012-02-07 20 views
0

全く同じ2つのテーブルからデータを取得して印刷することはできますか?現在、TABLE1では検索できますが、TABLE2では検索できません。1つのクエリまたは2つの別々のクエリ?

EDITTED

$name= $_SESSION['NAME']; 

USER 
ID - NAME 
1 - AAAA 
2 - BBBB 
3 - CCCC 
4 - DDDD 
5 - EEEE 

TABLE1 
ID - CODE - BUYSELL 
1 -A - Buying 
2 - A - Buying 
3 - B Buying 
4 - B - Selling 
5 - C - Selling 

"SELECT * from TABLE1, TABLE2, USER WHERE '$person' = USER.NAME 
    AND TABLE1.ID = USER.ID"; 

TABLE2 
ID - CODE - YESNO - CAR 
1 - A - YES - VOLVO 
2 - B - YES - FORD 
3 - C - YES - M 
4 - D - NO - BMW 
5 - A - NO - VOLVO 

(AND TABLE2.ID = USER.ID?????) 

私はすべてのテーブル1と2の両方を検索したいですか?しかし、TABLE2.ID = USER.IDを追加すると、基本的に両方のテーブルで同じ値が検索されます。だから、もし私がUSERID 1のCODEをtable1と2から欲しかったら。

1クエリーか2で可能ですか? 1に2つのクエリの結果を結合する

+0

あなたが探している出力は? (そして、Table1とTable2の両方にid列のユーザーIDがある場合は、両方のテーブルをusersテーブルに追加してみてください) – Arjan

+0

なぜ、類似したデータを持つ2つのテーブルが最初にあるのですか? – zerkms

+1

@Arjan:正規化のため? – zerkms

答えて

2

使用UNION

(SELECT id, name AS value, "users" AS tbl_name FROM users WHERE ...) 
UNION 
(SELECT id, code AS value, "codes" AS tbl_name FROM codes WHERE ...) 
+0

スター!ありがとうございました! –

-1

あなたはMySQL JOINを使用することができます。

USER.IDが同じで、その後、私はJOINを示唆し、TABLE1.IDとTABLE2.IDに関連する接続であることを仮定し
SELECT USER.NAME, TABLE1.ID AS `T1ID`, TABLE2.ID AS `T2ID` 
FROM USER 
LEFT JOIN TABLE1 ON TABLE1.ID=USER.ID 
LEFT JOIN TABLE2 ON TABLE2.ID=USER.ID 
0

SELECT * 
FROM `user` AS a 
JOIN `table1` AS b 
JOIN `table2` AS c 
ON a.id = b.id || a.id = c.id 
WHERE (a.name = '".$person."') 
GROUP BY a.id 
関連する問題