[英]Mysql: Select distinct, same column names from different tables
我已經搜索了類似的問題,但找不到我想要的。 我有 2 張桌子:
|-------ITEMS--------| |------PEOPLE--------|
| id | name | | id | name |
|--------------------| |--------------------|
| 1 | item1 | | 1 | person1 |
| 2 | item2 | | 2 | person2 |
| 3 | item3 | |--------------------|
| 4 | item4 |
| 5 | item5 |
|--------------------|
我需要一個將返回以下內容的查詢:
|--------------------|
| items | people |
|--------------------|
| item1 | person1 |
| item2 | person2 |
| item3 | |
| item4 | |
| item5 | |
|--------------------|
請問如何構造這樣的查詢?
@AllenS 您需要像這樣使用LEFT JOIN
:
SELECT `i`.`name` AS `items`,
`p`.`name` AS `people`
FROM `ITEMS` AS `i`
LEFT JOIN `PEOPLE` AS `p` ON `p`.`id` = `i`.`id`
如果這不能滿足您的需求,請告訴我,我會盡力提供進一步幫助。
據推測,您的意圖是將兩個表排列在兩個不同的列中。 這不是一個非常“SQL”的事情,但您可以使用row_number()
和聚合來做到這一點:
select max(item) as item, max(person) as person
from ((select i.name as item, null as person, row_number() over (partition by id) as seqnum
from items i
) union all
(select null, p.name, row_number() over (partition by id) as seqnum
from people p
)
) ip
group by seqnum
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.