programing

1052년:필드 목록 열에 'id'라고 애매한 것이다.

bestcode 2022. 9. 21. 00:10
반응형

1052년:필드 목록 열에 'id'라고 애매한 것이다.

테이블이 두 개 있어요. tbl_names그리고.tbl_section두 가지 기능을 모두 갖추고 있습니다.id밭을 갈고마워요.어떻게 하면,id필드, 항상 다음 오류가 표시되기 때문입니다.

1052: Column 'id' in field list is ambiguous

여기 제 질문:

SELECT id, name, section
  FROM tbl_names, tbl_section 
 WHERE tbl_names.id = tbl_section.id

그냥 문제만은 피해모든 분야는 선택할 수 있다.공연에서 하지만 그 돈 낭비가 될 것.어떻게 해야 하나?

SQL은 완전한 테이블 이름 기준 고정 영역 변환에 의한 칼럼 예선:을 지원한다.

SELECT tbl_names.id, tbl_section.id, name, section
  FROM tbl_names
  JOIN tbl_section ON tbl_section.id = tbl_names.id 

...나 테이블 별칭:

SELECT n.id, s.id, n.name, s.section
  FROM tbl_names n
  JOIN tbl_section s ON s.id = n.id 

그 탁자는 별칭을 권장하는 접근법 왜 형식 외에는?

왜 이러한 질의 봐 다르다?

두번째로, 나의 대답 ANSI-92 JOIN 구문(네 목숨이 ANSI-89)을 사용한다.그들은 같은 공연할 때, ANSI-89 구문 OUTER(오른쪽, 왼쪽, FULL)과 인접해 지원하지 않습니다.ANSI-89 구문 사용되지 않, 접형골 후두골 연골 결합에 ANSI-89 구문 그것을 강화하기 위해 투표하지 않겠다는 고려해야 한다.상세한 것에 대하여는, 이 질문을 참조해 주세요.

고객님의 고객명SELECT원하는 테이블로 ID의 서문을 작성해야 합니다.

SELECT tbl_names.id, name, section 
FROM tbl_names
INNER JOIN tbl_section 
   ON tbl_names.id = tbl_section.id

또는

SELECT tbl_section.id, name, section 
FROM tbl_names
INNER JOIN tbl_section 
   ON tbl_names.id = tbl_section.id

예를 들어 다음과 같은 완전 수식 이름을 지정하면 됩니다.

SELECT tbl_names.id as id, name, section FROM tbl_names, tbl_section WHERE tbl_names.id = tbl_section.id

그러면 tbl_names의 ID를 얻을 수 있습니다.

이미 답변이 많으니까 이렇게도 할 수 있어요.테이블에 에일리어스 이름을 지정하여 다음과 같이 선택 쿼리에서 사용할 수 있습니다.

SELECT a.id, b.id, name, section
FROM tbl_names as a 
LEFT JOIN tbl_section as b ON a.id = b.id;

가장 간단한 해결책은 다음과 같이 가입하는 것입니다.USING대신ON이렇게 하면 데이터베이스는 양쪽이 모두id열은 실제로 같기 때문에 트집 잡지는 않습니다.

SELECT id, name, section
  FROM tbl_names
  JOIN tbl_section USING (id)

한다면id에서 유일하게 공통되는 컬럼 이름입니다.tbl_names그리고.tbl_section, 를 사용할 수도 있습니다.NATURAL JOIN:

SELECT id, name, section
  FROM tbl_names
  NATURAL JOIN tbl_section

참고 항목: https://dev.mysql.com/doc/refman/5.7/en/join.html

여기서 정말 하고 싶은 것은 유니언 연산자를 다음과 같이 사용하는 것입니다.

(select ID from Logo where AccountID = 1 and Rendered = 'True')
  union
  (select ID from Design where AccountID = 1 and Rendered = 'True')
  order by ID limit 0, 51

여기 이 문서의 원고가 있습니다.https://dev.mysql.com/doc/refman/5.0/en/union.html

2개의 테이블에 있는 ID의 형식이 다른 경우 가입하고 싶은 경우, 예를 들어 다음과 같이 1개의 메인테이블에서 ID를 사용하도록 선택할 수 있습니다.table_customes그리고.table_orders주문 ID는 "101", "102"와 같습니다.110】고객용으로 1개만 사용

select customers.id, name, amount, date from customers.orders;
SELECT tbl_names.id, tbl_names.name, tbl_names.section
  FROM tbl_names, tbl_section 
 WHERE tbl_names.id = tbl_section.id

언급URL : https://stackoverflow.com/questions/6638520/1052-column-id-in-field-list-is-ambiguous

반응형