2012-11-07 85 views
0

我有我期待合併爲1層的SQL語法如下2 SQL語法MYSQL選擇場,場2只,其中場1或場不等於文本

SELECT sentFrom 
FROM tableName 
WHERE id = :varid 
AND sentFrom != :vartext 

SELECT sentTo 
FROM tableName 
WHERE id = :varid 
AND sentTo != :vartext 

我想我應該舉個例子:

MySQL表

----------------------------------- 
sentFrom   sentTo 
1     2 
1     3 
2     1 
2     3 

查詢

select sentFrom where sentFrom != 1 and select sentTo where sentTo != 1 

返回:

sentTo 2,但不sentFrom 1

sentTo 3但不sentFrom 1

sentFrom 2,但不sentTo 1

sentFrom 2和sentTo 3

回答

0

我認爲這應該有所幫助。

SELECT a.sentFrom , b.sentTo FROM 
(SELECT id, sentFrom FROM tableName WHERE id = :varid AND sentFrom != :vartext) a 
JOIN 
(SELECT id, sentTo FROM tableName WHERE id = :varid AND sentTo != :vartext) b 
ON a.id = b.id; 

如果你認爲,ID是不常見的,在每一個查詢選擇的行然後取下連接條件ON a.id = b.id。在這種情況下,它將返回查詢1的記錄的Cartesian product到查詢2.

+0

完美運作。謝謝! –

0
Syntex of select query is : 
Select Colname1,Colname2,.... from tablename 
     where colname=value and/or ... 
     group by cond.. 
     having cond... 
     order by colname, colname asc/desc 
====================================== 
Ex: 

    SELECT sentFrom,sentTo FROM tableName 
     WHERE id = :varid AND (sentFrom != :vartext or sentTo != :vartext) 
+0

該列包含sentFrom和sentTo,但如果在給定的列中sentFrom = var文本,我希望它仍然提取sentTo而不僅僅跳過在這裏 –

+0

SELECT sentFrom,sentTo FROM tableName WHERE id =:varid AND(sentFrom!=:vartext or sentTo!=:vartext or commom_colname!=:vartext)這裏commmon colname是普通的columnname,它們包括兩個值。 – jainvikram444