看似简单的加入我想不通

时间:2012-04-25 00:43:48

标签: mysql join

我以前从未做过像这样的联接

基本上,我有2个具有以下结构的表:

categories:
- id - int
- name - varchar
- show_in_menu - varchar
- sort_order - int

pages:
- id - int
- name - varchar
- show_in_menu - varchar
- sort_order - int

我试图编写一个查询,它将选择所有类别和页面并将它们吐出一个列表,以便它们按sort_order字段排序,我只想选择show_in_menu =='是'的行。问题是我想在两个表中按sort_order排序,例如:

page 1 - (sort order of 0)
page 2 - (sort order of 1)
category 1 - (sort order of 2)
page 4 - (sort order of 3)
category 7 - (sort order of 4)

我真的不知道如何完成我的查询,这里是:

select c.*, p.* 
from `categories` as c
join `pages` as p

任何帮助将不胜感激......

1 个答案:

答案 0 :(得分:1)

您可以尝试联合查询:

SELECT * FROM categories
WHERE show_in_menu = 'Yes'
UNION
SELECT * FROM pages
WHERE show_in_menu = 'Yes'
ORDER BY sort_order

http://w3schools.com/sql/sql_union.asp