我正在学习mysql并且一直试图让它工作,但无论我如何尝试它总会出现错误 - 或者它只是没有从表中显示任何内容。
我有3个表,所有表都有相同数量的列和列名
我想按标题
按字母顺序列出所有值表格:一般 - 温度 - 位置
列:id - url - title - description
你会怎么写select语句?
我尝试了很多方法,无法弄明白......我猜它看起来像
SELECT * FROM General JOIN Temp ON General.title = Temp.title JOIN Location ON Temp.title = General.title
我已经广泛地改变了像Temp.title = General.title这样的值,这似乎没什么帮助
有什么想法吗?
谢谢!
p.s - 我也尝试了这个并且它提供了数据,但只显示了一般表中的一些结果以及来自temp的帖子数量......非常混乱
SELECT
General.id,
General.url,
General.title,
General.description,
Temp.id,
Temp.url,
Temp.title,
Temp.description,
Location.id,
Location.url,
Location.title,
Location.description
FROM
General INNER JOIN Temp
ON General.id = Temp.id
INNER JOIN Location
ON Temp.id = Location.id
ORDER BY
General.title
答案 0 :(得分:4)
(SELECT id, url, title, description FROM General)
UNION
(SELECT id, url, title, description FROM Temp)
UNION
(SELECT id, url, title, description FROM Location)
ORDER BY Title
MySQL Reference。
答案 1 :(得分:1)
添加带有额外列的表:
SELECT NULL 'id',
NULL 'url',
NULL 'title',
NULL 'description',
NULL 'extra_column'
FROM DUAL
UNION
SELECT g.id,
g.url,
g.title,
g.description,
NULL
FROM GENERAL g
UNION
SELECT t.id,
t.url,
t.title,
t.description,
NULL
FROM TEMP t
UNION
SELECT l.id,
l.url,
l.title,
l.description,
NULL
FROM LOCATION l
ORDER BY title
这假设您需要额外表中的所有列。如果不这样做,请不要包含额外的列,但要确保数据类型与SELECT语句中的位置匹配。