выбрать данные из двух таблиц - PullRequest
1 голос
/ 07 декабря 2010

У меня есть две таблицы Accountdetails и Accounts

  • Accountdetails состоит из столбцов AD_ID, AD_Name, AD_AccNo
  • Accounts состоит из столбцов A_Name, A_AccNo, A_AccDate

Мой вопрос: я хотел выбрать данные на основе того, что AD_AccNo и A_AccNo равны

Я пытался использовать этот запрос

select AD.AD_ID, a.A_Name, a.A_AccNo, a.A_AccDate 
from Accountdetails as AD, Accounts as a 
where AD.AD_AccNo = a.A_AccNo

Может кто-нибудь предложить мне место, где я иду не так?

Ответы [ 7 ]

1 голос
/ 07 декабря 2010
select AD.AD_ID, a.A_Name, a.A_AccNo, a.A_AccDate 
from Accountdetails AD left join Accounts a 
ON AD.AD_AccNo = a.A_AccNo
0 голосов
/ 16 ноября 2017
SELECT ad.AD_ID,
       ad.AD_Name,
       ad.AD_AccNo,
       a.A_Name,
       a.A_AccNo,
       a.A_AccDate 
FROM Accountdetails ad
INNER JOIN Accounts a
ON ad.AD_AccNo = a.A_AccNo  
0 голосов
/ 28 сентября 2012
SELECT R.roleID, R.rolename, P.DisplayName, P.canRead, P.canWrite, P.canDelete
FROM role R
INNER JOIN (SELECT rp.roleId, rp.canDelete, rp.canRead, rp.canWrite, rp.moduleId,
            tm.DisplayName, tm.IsActive, tm.ParentId, tm.url
            FROM rolesPermissions rp
            INNER JOIN tbl_be_Modules tm ON rp.moduleId = tm.Id) P ON R.roleID = P.roleId
0 голосов
/ 07 декабря 2010

В таблицах должно быть несколько повторяющихся значений номера счета.

Если у вас есть 3 строки в Accountdetails с номером счета X и 4 строки в Accounts с тем же номером, соединение будетдобавьте 12 строк в набор результатов.

Чтобы определить это, попробуйте следующее

select COUNT(*), AD_AccNo from Accountdetails GROUP BY AD_AccNo HAVING COUNT(*) > 1 

select COUNT(*), A_AccNo from Accounts GROUP BY A_AccNo HAVING COUNT(*) > 1

Разрешение для этого зависит от того, почему они есть.Есть ли дополнительный столбец, к которому нужно присоединиться?

0 голосов
/ 07 декабря 2010

Использование объединения должно работать:

SELECT
    ad.AD_ID,
    a.A_Name,
    a.A_AccNo,
    a.A_AccDate
FROM
    Accountdetails ad
INNER JOIN
    Accounts a ON a.A_AccNo = ad.AccNo
WHERE
    [insert any conditional criteria here]    
0 голосов
/ 07 декабря 2010

Попробуйте

SELECT AD.AD_ID, a.A_Name, a.A_AccNo, a.A_AccDate from Accountdetails AD
LEFT JOIN Accounts a ON AD.AD_AccNo=a.A_AccNo
WHERE .... [your criteria here]
0 голосов
/ 07 декабря 2010

Это точный запрос, вы не делаете группу или что-то в этом роде?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...