按ID从多个表中选择,并在其他列上排序

时间:2015-03-10 09:42:53

标签: mysql

我想执行一个查询,但我无法获得所需的结果。

我有两个表格( A& B ),其列tag_idpriority列相同。

这两个表还有其他一些列(image& text)。我想选择tag_id等于给定变量的所有行,并且我想在priority上对结果进行排序。

(列priority对每一行都是唯一的)

Db drawing

我应该使用哪种查询?

提前致谢。

6 个答案:

答案 0 :(得分:0)

试试这个

SELECT * 
FROM A, B 
WHERE A.tag_id = B.tag_id 
    AND A.tag_id = "somevalue" 
ORDER BY A.priority ASC; 

答案 1 :(得分:0)

我认为应该这样做:

SELECT * FROM A, B WHERE A.tag_id = B.tag_id and A.tag_id = $YourVariable ORDER BY A.priority, B.priority

答案 2 :(得分:0)

这应该有效

select *
from a
join b on b.tag_id = a.tag_id
where a.tag_id = x
order by a.priority asc

答案 3 :(得分:0)

尝试使用此查询:

SELECT A.TAG_ID, A.PRIORITY, A.TEXT, B.IMAGE
FROM A INNER JOIN B ON A.TAG_ID = B.TAG_ID
WHERE A.TAG_ID = @TAG_ID
ORDER BY A.PRIORITY

答案 4 :(得分:0)

在摆弄了一段时间后,我找到了一个解决方案。

SELECT priority, text, null AS image 
FROM A
WHERE tag_id = x
UNION ALL 
SELECT priority, null, image
FROM B
WHERE tag_id = x
ORDER BY priority

这样其他表所没有的字段被设置为null。

答案 5 :(得分:-1)

select tag_id, priority
  from A
 where tag_id = <your search value>
 union all
select tag_id, priority
  from B
 where tag_id = <your search value>
order by 2