복붙노트

[SQL] MySQL의 내부 쿼리 여러 테이블을 조인

SQL

MySQL의 내부 쿼리 여러 테이블을 조인

나는 몇 테이블을 가입하려고하고 레이아웃의 예는 다음과 같습니다 :

명령

user_id=7 pricing id=37

products_pricing

id=37 product_id=33

제품

id=33 name=test product

SQL

SELECT *
FROM orders
  INNER JOIN products_pricing
    ON orders.pricing_id = products_pricing.id
  INNER JOIN products
    ON products_pricing.product_id = products.id
WHERE orders.user_id = '7' ");

명부

id=233 user_id=7 url=test.com

이 SQL로 난 출력 7의 USER_ID에서 나에게 모든 제품을주고받을 그것은 동안 루프에서 각 제품의 이름을 나열합니다. 내가 다른 INNER를 추가 할 때 그러나 USER_ID 열이 명부라는 테이블에 대한 가입과 내가 일치가 나는 URL로 제품 이름을 하이퍼 링크 할 수 있도록 각 행에 대해 URL을 잡아해야 내가 얻을 모든뿐만 아니라 명부 테이블에 포함 위의 작업 물건으로. 나도 매우 잘못하고 있어요 또는 뭔가를 놓친 거지. 나는 그것을 알아 내려고하지만, 같은 결과를 얻고 유지하려고 몇 시간을 보냈어요. 캔 사람의 도움이 나를?

해결법

  1. ==============================

    1.이 시도:

    이 시도:

    SELECT 
      p.id,
      p.name,
      l.url,
      o.user_id,
      o.pricing_id
    FROM orders AS o
    INNER JOIN products_pricing AS pp ON o.pricing_id  = pp.id
    INNER JOIN products         AS  p ON pp.product_id = p.id
    INNER JOIN listings         AS  l ON l.user_id = o.user_id
    WHERE o.user_id ='7' 
      AND l.id = 233 
      AND l.url = 'test.com';
    

    당신이 당신의 질문에 게시 샘플 데이터의 경우, 이것은 당신을 줄 것이다 :

    | ID |        NAME |      URL | USER_ID | PRICING_ID |
    ------------------------------------------------------
    | 33 | testproduct | test.com |       7 |         37 |
    
  2. ==============================

    2.예이 select 문에서 선택 열을 itself.and를 가져 조인 INNER를 사용하여 수행 할 수 있습니다.

    예이 select 문에서 선택 열을 itself.and를 가져 조인 INNER를 사용하여 수행 할 수 있습니다.

    SELECT 
      p.id,
      p.name,
      l.url,
      o.user_id,
      o.pricing_id
    FROM orders AS o
    INNER JOIN products_pricing AS pp ON o.pricing_id  = pp.id
    INNER JOIN products         AS  p ON pp.product_id = p.id
    INNER JOIN listings         AS  l ON l.user_id = o.user_id
    WHERE o.user_id ='7' 
      AND l.id = 233 
      AND l.url = 'test.com';
    
  3. from https://stackoverflow.com/questions/14673338/mysql-inner-join-query-multiple-tables by cc-by-sa and MIT license