2

我以前从未做过这样的加入

基本上,我有 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 == 'Yes' 的行。问题是我希望在两个表中按 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

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

4

1 回答 1

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

于 2012-04-25T00:59:40.197 回答