如何从表A中选择一行和表B多行?

时间:2015-04-27 21:03:21

标签: sql select relational-database

我有两张桌子。

+-----------+----------+------------+
| ID        | title    |    URL     |
+-----------+----------+------------+
| 1         | test     | test.html  |
| 2         | test2    | test2.html |
+-----------+----------+------------+

文件

+-----------+----------+------------+
| ID        | page_id  |    name    |
+-----------+----------+------------+
| 10        |    1     |   a.jpg    |
| 11        |    1     |   b.jpg    |
| 12        |    2     |   c.jpg    |
+-----------+----------+------------+

如何从PAGES中选择一行和FILES多行?

我的查询为:

select * from pages,files WHERE (pages.id = page_id) AND  (url='$url')

以上查询的输出:

test
a.jpg

我需要的输出:

test
a.jpg
b.jpg

2 个答案:

答案 0 :(得分:1)

这更像是一个sql问题,而不是与PHP有关的任何问题 我认为这就是你想要的,但我对你的措辞不确定。

SELECT pages.title, files.name 
FROM pages 
INNER JOIN files ON pages.id = files.page_id
WHERE (pages.url='$url')
GROUP BY files.name;

答案 1 :(得分:0)

像这样的东西

SELECT 
    Files.Name 
FROM Files 
INNER JOIN Pages ON Files.page_id = Pages.Id
WHERE Pages.url = '$url'

UNION ALL 

SELECT 
    Pages.title
FROM Pages 
WHERE Pages.url = '$url'