如果表2中存在ID,则获取表1数据

时间:2018-08-29 07:09:18

标签: php mysql

Table 1

Category ID | Category Name

1             Lorem 1
2             Lorem 2
3             Lorem 3


Table 2

Post ID     | Post Content  | Category ID
1             Post 1          2
2             Post 2          2
3             Post 3          1
4             Post 4          3


Result

Categories:
Lorem 1
Lorem 2
Lorem 3

仅当该类别中有帖子时才会显示类别名称。 列表将使用li显示。

5 个答案:

答案 0 :(得分:1)

尝试一下

SELECT DISTINCT table1.category_name
FROM table1
RIGHT JOIN table2 ON table1.category_id = table2.category_id;

答案 1 :(得分:0)

使用内部联接具有独特的优势:

   select distinct CategoryName as categories from table1 a inner join table2 b
    on a.categoryid=b.categoryid

答案 2 :(得分:0)

$query =
"SELECT t1.cat_name
FROM t1,t2
WHERE t1.id = t2.cat_id
GROUP BY t1.cat_name";

您应该更改表格/属性的名称,并选择自己的宗教信仰,全部选择小写或大写,并选择骆驼或蛇皮

答案 3 :(得分:0)

DISTINCTGROUP BY之间的差异不至于太深的情况下,由于您不使用聚合并且正在投影DISTINCT语句中的特定列(有关更多详细信息,请参见此帖子:Is there any difference between GROUP BY and DISTINCT)。

有两种方法可以解决此问题。可以说,使用SELECT是最易读的版本(如下),但是,如果您的风格通常是要运行很多子查询,那么子查询版本(以下更进一步)可能会更好地吸引您:

INNER JOIN方法:

INNER JOIN

有关活动示例,请参见SQL Fiddle:http://sqlfiddle.com/#!9/51de19/5

子查询方法:

SELECT DISTINCT t1.category_name AS categories
FROM table_1 t1
  INNER JOIN table_2 t2 ON t1.category_id = t2.category_id
ORDER BY 1

有关活动示例,请参见SQL Fiddle:http://sqlfiddle.com/#!9/51de19/6

答案 4 :(得分:-1)

解决方案

SELECT DISTINCT Table_1.Category_Name FROM Table_1 LEFT JOIN Table_2 ON Table_1.Category_ID = Table_2.Category_ID