Объединение 2 запросов MySQL - PullRequest
1 голос
/ 13 июля 2010

У меня есть две таблицы, в которых мне нужно выбрать все строки, из которых идентификатор пользователя равен $userid, а затем отсортировать их.Я пытался использовать join, но я даже не мог понять, как все сделать правильно.Кто-нибудь может указать мне правильное направление относительно того, как превратить их в один запрос?

$result1 = mysql_query("SELECT * FROM paypal_sub_info 
             WHERE userid='$THEuserid' ORDER BY cur_time DESC");
$result2 = mysql_query("SELECT * FROM paypal_pay_info 
             WHERE userid='$THEuserid' ORDER BY cur_time DESC");

while($row = mysql_fetch_array($result1)){
    echo $row['txn_type'];
}

Решение:

SELECT * 
FROM   paypal_sub_info sub,paypal_pay_info pay 
WHERE  pay.userid = '$THEuserid' 
       AND sub.userid = '$THEuserid' 
ORDER  BY pay.cur_time DESC,sub.cur_time DESC 

Ответы [ 4 ]

3 голосов
/ 13 июля 2010

Попробуйте:

SELECT * FROM paypal_sub_info sub, paypal_pay_info pay 
WHERE pay.userid='$THEuserid' AND sub.userid='$THEuserid'
ORDER BY pay.cur_time DESC, sub.cur_time DESC

Если вы просто хотите использовать txn_type, вы можете сделать его SELECT pay.txn_type AS txn_type

1 голос
/ 13 июля 2010

Использование:

SELECT psi,*, ppi.*
   FROM PAYPAL_SUB_INFO psi
   JOIN PAYPAL_PAY_INFO ppi ON ppi.userid = psi.userid
  WHERE psi.userid = $THEuserid
ORDER BY psi.cur_time DESC, ppi.cur_time DESC
1 голос
/ 13 июля 2010

Я верю, что вы хотите:

    SELECT field1, field2, ... FROM paypal_sub_info WHERE userid='$THEuserid'
    UNION
    SELECT field1, field2, ... FROM paypal_pay_info WHERE userid='$THEuserid'
    ORDER BY cur_time DESC
0 голосов
/ 13 июля 2010

Итак, сначала рассмотрите возможность использования mysqli для любого серьезного проекта. Ответ OMG Ponies - это то, как я бы предложил сделать это, хотя вам не нужно указывать поля alias.wildcard отдельно в предложении select. Также лучше всего указывать поля, которые вы пытаетесь получить, а не *, хотя мы все часто используем *, когда ленивы.

Ответ Уилла заставляет меня улыбаться, потому что это технически то, о чем ты просил, но не то, что я ожидал, что ты хотел.

У вас есть более подробное описание того, какие данные вы пытаетесь извлечь, или это просто пример, потому что у вас возникают проблемы с поиском соединений?

-J

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