mysql 显示两个表中的记录

wooyq4lh  于 2023-03-28  发布在  Mysql
关注(0)|答案(1)|浏览(138)

我在PHPMyAdmin中有两个表如下:
表1:magazine_buys
| 名称|价格|日期|
| --------------|--------------|--------------|
| 牛奶|十三|二○二三年二月五日|
| 面包|10个|2023年2月10日|
表2:magazine_sells
| 名称|价格1|价格2|采购日期|出售日期|
| --------------|--------------|--------------|--------------|--------------|
| 洋葱|四|六|二○二三年二月一日|二〇二三年二月六日|
| 南瓜|八|10个|二○二三年二月二日|二○二三年二月九日|
我想做一个查询,它会给予我一个这样的表
| 名称|价格|价格2|日期|售出日期|
| --------------|--------------|--------------|--------------|--------------|
| 洋葱|四|六|二○二三年二月一日|二〇二三年二月六日|
| 南瓜|八|10个|二○二三年二月二日|二○二三年二月九日|
| 牛奶|十三|空|二○二三年二月五日|空|
| 面包|10个|空|2023年2月10日|空|
第一个问题是,在一个表中,我们有值'price',而在另一个表price1中,我试图使用与price p相同的名称设置,但它重复了记录

SELECT coalesce(magazine_buys.name, magazine_sells.name),
       coalesce(magazine_buys.price, magazine_sells.price1),
       coalesce(magazine_buys.date, magazine_sells.pur_date) 
FROM magazine_sells, magazine_buys;

结果:x1c 0d1x

gjmwrych

gjmwrych1#

你可以像这样使用UNION

SELECT
    name,
    price1 as price,
    price2,
    pur_date as `date`,
    sold_date
FROM magazine_sells
UNION
SELECT
    name,
    price,
    NULL,
    `date`,
    NULL
FROM magazine_buys;

点击这里进入SQL Fiddle演示
请记住,UNION将删除任何重复的行。如果您想保留任何重复的行,请使用UNION ALL

相关问题