2010-08-20 109 views
0

我有這2個MySQL queryesMysql的自定義選擇查詢

SELECT `name` AS name1,`id` AS id1 FROM `table` WHERE id=1 
SELECT `name` AS name2,`id` AS name2 FROM `table` WHERE id=2 

結果將outputed這樣

NAME1 ID1 
john 1 
NAME2 ID2 
meg 2 

反正是有,從2個查詢我會做1,它會顯示所有結果在同一張表的1行上?

NAME1 ID1 NAME2 ID2 
john  1 meg  2 
+0

有是一種可以完成的方式,但它會非常醜陋,非常非正統。你能否闡明你爲什麼不能在下面提供的回答中查詢的原因? – mhitza 2010-08-20 19:46:45

回答

0

選擇tbl1.name,tbl1.id,tbl2.name,從MYTABLE TBL1 tbl2.id,MYTABLE tbl2的

但此查詢將是一個爛攤子,它會給你兩個全組合名稱以任何順序從您的表中,您可以使用WHERE子句過濾它,但是..您有多少個名稱?爲什麼這樣做?也許,如果我們知道你正在試圖做的,我們可以給你更好的答案是什麼

編輯哦~~我現在看到你的查詢...它應該是這樣的

select tbl1.name,tbl1.id,tbl2.name,tbl2.id from mytable tbl1,mytable tbl2 where tbl1.id=1 and tbl2.id=2 
0

你的意思是像在WHERE子句中使用OR嗎?像:

SELECT `name`,`id` FROM `table` WHERE id=1 OR id = 2 
+1

這會產生兩行tho。 – 2010-08-20 19:41:55

0

你可以結合起來,這樣的查詢

SELECT `name`,`id` FROM `table` WHERE id=1 OR id=2 

但是,你仍然會得到兩個結果。你想用結果輸出做什麼?

1
Select Min(Case When Id = 1 Then Id End) As Id1 
    , Min(Case When Id = 1 Then Name End) As Name1 
    , Min(Case When Id = 2 Then Id End) As Id2 
    , Min(Case When Id = 2 Then Name End) As Name2 
From `table` 
Where Id In(1,2) 
+0

+1:我更喜歡使用MAX - 更明顯的IMO – 2010-08-20 19:48:43

+0

一個好奇的反對票。我很想知道推理。 – Thomas 2010-08-20 21:47:26

2
SELECT t1.name AS name1, t1.id AS id1, t2.name as name2, t2.id as id2 
FROM table as t1, table as t2 WHERE t1.id = 1 and t2.id = 2;