Jür*_*aul 29 mysql sql database
我们叫这个表terms_relation:
+---------+----------+-------------+------------+------------+--+
| term_id | taxonomy | description | created_at | updated_at | |
+---------+----------+-------------+------------+------------+--+
| 1 | categ | non | 3434343434 | 34343433 | |
| 2 | categ | non | 3434343434 | 3434343434 | |
| 3 | tag | non | 3434343434 | 3434343434 | |
| 4 | tag | non | 3434343434 | 3434343434 | |
+---------+----------+-------------+------------+------------+--+
Run Code Online (Sandbox Code Playgroud)
这是表terms:
+----+-------------+-------------+
| id | name | slug |
+----+-------------+-------------+
| 1 | hello | hello |
| 2 | how are you | how-are-you |
| 3 | tutorial | tutorial |
| 4 | the end | the-end |
+----+-------------+-------------+
Run Code Online (Sandbox Code Playgroud)
我该如何选择表中的所有行terms和表terms_relation它的分类表terms_relation是categ?我是否需要两个查询,或者我可以使用一个join语句?
gah*_*cep 72
试试这个(子查询):
SELECT * FROM terms WHERE id IN
(SELECT term_id FROM terms_relation WHERE taxonomy = "categ")
Run Code Online (Sandbox Code Playgroud)
或者你可以尝试这个(加入):
SELECT t.* FROM terms AS t
INNER JOIN terms_relation AS tr
ON t.id = tr.term_id AND tr.taxonomy = "categ"
Run Code Online (Sandbox Code Playgroud)
如果要从两个表中接收所有字段:
SELECT t.id, t.name, t.slug, tr.description, tr.created_at, tr.updated_at
FROM terms AS t
INNER JOIN terms_relation AS tr
ON t.id = tr.term_id AND tr.taxonomy = "categ"
Run Code Online (Sandbox Code Playgroud)
Jos*_*mit 17
您可以使用子查询:
SELECT *
FROM terms
WHERE id IN (SELECT term_id FROM terms_relation WHERE taxonomy='categ');
Run Code Online (Sandbox Code Playgroud)
如果您需要显示两个表中的所有列:
SELECT t.*, tr.*
FROM terms t, terms_relation tr
WHERE t.id = tr.term_id
AND tr.taxonomy='categ'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
90947 次 |
| 最近记录: |