Mysql,数据分布在两个表中,分开的行

时间:2011-09-22 20:33:14

标签: mysql join union

我的数据分布在两个具有不同结构的MySQL表中。

一张桌子有DVD,另一张桌子有CD。

DVD表格如下:

PUBLISHER
STOCK
DVD_INFO
EXTRA_DVD_INFO

CD表格如下:

PUBLISHER
STOCK
CD_INFO

如何在一个查询中获取同一发布者的所有CD和DVD,按STOCK排序?

  • 每个产品一行。
  • 如果是CD,则DVD特定字段应为空。
  • 如果是DVD,则CD特定字段应为空。

我不认为UNION可以起作用,因为结构不同。

我不确定JOIN在这种情况下如何为每个产品获取单独的行。

1 个答案:

答案 0 :(得分:3)

您可以使用NULL来填充空列,例如

SELECT
    PUBLISHER,
    STOCK,
    DVD_INFO AS INFO,
    EXTRA_DVD_INFO
FROM DVD
WHERE PUBLISHER = ?
    UNION ALL
SELECT
    PUBLISHER,
    STOCK,
    CD_INFO AS INFO,
    NULL
FROM CD
WHERE PUBLISHER = ?
ORDER BY STOCK;