Primary Secondary
-----------------------------------
UST MUN
Data NULL
Tele Data
Sun Data
RMDS Data
Data NULL
Mor NULL
UST NULL
Data Bridge
我想检查" Secondary"的价值。已经在"主要"那应该是"主要"但如果它不在"主要"价值必须来自"中学"仅限列。
我希望输出为:
Primary Secondary
------ -----------
UST MUN
Data Bridge
Tele
Sun
RMDS
Mor
答案 0 :(得分:1)
UNION
(而不是UNION ALL
)将返回您需要的所有不同值:
SELECT Primary
FROM MyTable
UNION
SELECT Secondary
FROM MyTable
WHERE Secondary IS NOT NULL
答案 1 :(得分:0)
由于您没有组合因子,因此无法在一个输出中输出两行。数据库如何知道UST - MUN
应该在同一行而不是UST - Bridge
。
你可以在两个不同的输出中获得它并围绕它构建你的编程逻辑。
对于第一行,你可以这样做:
SELECT * FROM
(
SELECT t1.`primary` FROM tableName t1
UNION
SELECT t1.`primary` FROM tableName t1
INNER JOIN tableName t2 ON t1.primary = t2.`secondry`
) AS test1
第二,你可以这样做:
SELECT DISTINCT t2.`secondry` FROM tableName t1
RIGHT JOIN tableName t2 ON t1.primary = t2.`secondry`
WHERE t1.primary IS NULL AND t2.secondry IS NOT NULL