我有两个没有任何关系或外键的表,我想在查询中合并两列。
select DISTINCT a.OdemeTuru, b.MAdi from odemeturu as a,
musteriler as b order by b.MID,a.OID
我可以从两者中获取值,但它是混合的且不同的不起作用。
结果如下:
'Nakit', 'Ali' 'Veresiye', 'Ali' 'Kredi Kartı', 'Ali' 'Özel', 'Ali'
'Nakit', 'Ahmet' 'Veresiye', 'Ahmet' 'Kredi Kartı', 'Ahmet' 'Özel',
'Ahmet' 'Nakit', 'Cemil' 'Veresiye', 'Cemil' 'Kredi Kartı', 'Cemil'
'Özel', 'Cemil' 'Nakit', 'Furkan' 'Veresiye', 'Furkan' 'Kredi Kartı',
'Furkan' 'Özel', 'Furkan'
但是,我想要以下内容
'Nakit', 'Ali'
'Özel', 'Ahmet'
'Veresiye', 'Cemil'
'Kredi Kartı', 'Furkan'
我的查询哪里有错误? (表的行数相同)
编辑:抱歉我忘记了一些事情。不存在a.tarih
最佳答案
我能想到的交叉应用 2 个 4 行表以获得 4 行而不是 16 行的唯一方法是加入行号:
SELECT a.OdemeTuru, b.Madi
FROM ( SELECT @a:= @a + 1 AS RowNumber, OID, OdemeTuru
FROM odemeturu,
(SELECT @a:= 0) AS a
ORDER BY OID
) AS a
INNER JOIN
( SELECT @b:= @b + 1 AS RowNumber, MID, Madi
FROM musteriler,
(SELECT @b:= 0) AS b
ORDER BY MID
) AS b
ON a.RowNumber = b.RowNumber
在 odemeturu 中,行按 OID 排序,而在 musteriler
中,行按 MID 排序。 odemeturu
的第一行与 musteriler
的第一行连接,第二行与第二行连接,依此类推。这是相当任意的,但似乎符合您的标准。
您可以更改子查询的排序方式来更改结果。
<小时/>关于mysql - MySQL 中的 SQL 不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11084368/