簡體   English   中英

返回一行SQL查詢的結果

[英]Return results of SQL query on one row

SELECT
    Tickets.id,
    (SELECT Users.Name FROM Users INNER JOIN Tickets ON Tickets.Creator = Users.id) AS naam,
    (SELECT Users.Name FROM Users INNER JOIN Tickets ON Tickets.Owner = Users.id) AS name
FROM Tickets
WHERE Tickets.id = 64;

我要一排

id, username(Tickets.creator= Users.id), username(where Tickets.Owner = Users.id)

Users

id | name
----------
1  | jan
2  | henk
3  | maria

tickets

ticketsid | owner     | creator
-------------------------------
1         | 3         | 2
2         | 1         | 3
3         | 2         | 3

您的查詢希望與外部查詢相關聯。 您因為另外加入tickets而錯過了這一點:

SELECT
    Tickets.id,
    (SELECT Users.Name FROM Users WHERE Tickets.Creator = Users.id) AS naam,
    (SELECT Users.Name FROM Users WHERE Tickets.Owner = Users.id) AS name
FROM Tickets
WHERE Tickets.id = 64;

您也可以使用join s表達此查詢:

select t.id, uc.name as CreatorName, uo.name as OwnerName
from Tickets t left outer join
     Users uc 
     on t.Creator = uc.id left outer join
     Users uo
     on t.Owner = uo.id
where t.id = 64;

這將是表達此查詢的更典型方式。

怎么樣

select t.id, o.name, c.name
  from tickets t
  join users o on o.id = t.owner
  join users c on c.id = t.creator
 where t.id = 64;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM