Yii2 - Syntax error or access violation: 1066 Not unique table
I'm trying to join two tables in a query :
- sc_cours -
idCour
volHoraireCour
idMat
- sc_matieres -
idMat
nomMat
the code of the query is the following
$query->select('*')
->from('sc_cours')
->innerJoin('sc_matieres', 'sc_cours.idMat = sc_matieres.idMat');
But i get this following error
SQLSTATE[42000]: Syntax error or access violation: 1066 Table/alias: 'sc_matieres' non unique
The SQL being executed was: SELECT * FROM `sc_cours` INNER JOIN `sc_matieres` ON sc_cours.idMat = sc_matieres.idMat INNER JOIN `sc_matieres` ON sc_cours.idMat = sc_matieres.idMat
Do you know what's the main problem guys? Thanks you!
yii2
add a comment |
I'm trying to join two tables in a query :
- sc_cours -
idCour
volHoraireCour
idMat
- sc_matieres -
idMat
nomMat
the code of the query is the following
$query->select('*')
->from('sc_cours')
->innerJoin('sc_matieres', 'sc_cours.idMat = sc_matieres.idMat');
But i get this following error
SQLSTATE[42000]: Syntax error or access violation: 1066 Table/alias: 'sc_matieres' non unique
The SQL being executed was: SELECT * FROM `sc_cours` INNER JOIN `sc_matieres` ON sc_cours.idMat = sc_matieres.idMat INNER JOIN `sc_matieres` ON sc_cours.idMat = sc_matieres.idMat
Do you know what's the main problem guys? Thanks you!
yii2
Try this - $query = new yiidbQuery(); $query->select(['a.*','b.*']) ->from(['a' => 'sc_cours']) ->innerJoin(['b' => 'sc_matieres'],'a.idMat = b.idMat') ->all();
– Gru
Nov 21 '18 at 4:54
I have the same error, but this time on the aliases Syntax error or access violation: 1066 Table/alias: 'b' non unique The SQL being executed was: SELECT * FROMsc_cours
a
INNER JOINsc_matieres
b
ON a.idMat = b.idMat INNER JOINsc_matieres
b
ON a.idMat = b.idMat
– Badara
Nov 21 '18 at 13:43
add a comment |
I'm trying to join two tables in a query :
- sc_cours -
idCour
volHoraireCour
idMat
- sc_matieres -
idMat
nomMat
the code of the query is the following
$query->select('*')
->from('sc_cours')
->innerJoin('sc_matieres', 'sc_cours.idMat = sc_matieres.idMat');
But i get this following error
SQLSTATE[42000]: Syntax error or access violation: 1066 Table/alias: 'sc_matieres' non unique
The SQL being executed was: SELECT * FROM `sc_cours` INNER JOIN `sc_matieres` ON sc_cours.idMat = sc_matieres.idMat INNER JOIN `sc_matieres` ON sc_cours.idMat = sc_matieres.idMat
Do you know what's the main problem guys? Thanks you!
yii2
I'm trying to join two tables in a query :
- sc_cours -
idCour
volHoraireCour
idMat
- sc_matieres -
idMat
nomMat
the code of the query is the following
$query->select('*')
->from('sc_cours')
->innerJoin('sc_matieres', 'sc_cours.idMat = sc_matieres.idMat');
But i get this following error
SQLSTATE[42000]: Syntax error or access violation: 1066 Table/alias: 'sc_matieres' non unique
The SQL being executed was: SELECT * FROM `sc_cours` INNER JOIN `sc_matieres` ON sc_cours.idMat = sc_matieres.idMat INNER JOIN `sc_matieres` ON sc_cours.idMat = sc_matieres.idMat
Do you know what's the main problem guys? Thanks you!
- sc_cours -
idCour
volHoraireCour
idMat
- sc_matieres -
idMat
nomMat
- sc_cours -
idCour
volHoraireCour
idMat
- sc_matieres -
idMat
nomMat
$query->select('*')
->from('sc_cours')
->innerJoin('sc_matieres', 'sc_cours.idMat = sc_matieres.idMat');
$query->select('*')
->from('sc_cours')
->innerJoin('sc_matieres', 'sc_cours.idMat = sc_matieres.idMat');
SQLSTATE[42000]: Syntax error or access violation: 1066 Table/alias: 'sc_matieres' non unique
The SQL being executed was: SELECT * FROM `sc_cours` INNER JOIN `sc_matieres` ON sc_cours.idMat = sc_matieres.idMat INNER JOIN `sc_matieres` ON sc_cours.idMat = sc_matieres.idMat
SQLSTATE[42000]: Syntax error or access violation: 1066 Table/alias: 'sc_matieres' non unique
The SQL being executed was: SELECT * FROM `sc_cours` INNER JOIN `sc_matieres` ON sc_cours.idMat = sc_matieres.idMat INNER JOIN `sc_matieres` ON sc_cours.idMat = sc_matieres.idMat
yii2
yii2
asked Nov 21 '18 at 2:47
BadaraBadara
11
11
Try this - $query = new yiidbQuery(); $query->select(['a.*','b.*']) ->from(['a' => 'sc_cours']) ->innerJoin(['b' => 'sc_matieres'],'a.idMat = b.idMat') ->all();
– Gru
Nov 21 '18 at 4:54
I have the same error, but this time on the aliases Syntax error or access violation: 1066 Table/alias: 'b' non unique The SQL being executed was: SELECT * FROMsc_cours
a
INNER JOINsc_matieres
b
ON a.idMat = b.idMat INNER JOINsc_matieres
b
ON a.idMat = b.idMat
– Badara
Nov 21 '18 at 13:43
add a comment |
Try this - $query = new yiidbQuery(); $query->select(['a.*','b.*']) ->from(['a' => 'sc_cours']) ->innerJoin(['b' => 'sc_matieres'],'a.idMat = b.idMat') ->all();
– Gru
Nov 21 '18 at 4:54
I have the same error, but this time on the aliases Syntax error or access violation: 1066 Table/alias: 'b' non unique The SQL being executed was: SELECT * FROMsc_cours
a
INNER JOINsc_matieres
b
ON a.idMat = b.idMat INNER JOINsc_matieres
b
ON a.idMat = b.idMat
– Badara
Nov 21 '18 at 13:43
Try this - $query = new yiidbQuery(); $query->select(['a.*','b.*']) ->from(['a' => 'sc_cours']) ->innerJoin(['b' => 'sc_matieres'],'a.idMat = b.idMat') ->all();
– Gru
Nov 21 '18 at 4:54
Try this - $query = new yiidbQuery(); $query->select(['a.*','b.*']) ->from(['a' => 'sc_cours']) ->innerJoin(['b' => 'sc_matieres'],'a.idMat = b.idMat') ->all();
– Gru
Nov 21 '18 at 4:54
I have the same error, but this time on the aliases Syntax error or access violation: 1066 Table/alias: 'b' non unique The SQL being executed was: SELECT * FROM
sc_cours
a
INNER JOIN sc_matieres
b
ON a.idMat = b.idMat INNER JOIN sc_matieres
b
ON a.idMat = b.idMat– Badara
Nov 21 '18 at 13:43
I have the same error, but this time on the aliases Syntax error or access violation: 1066 Table/alias: 'b' non unique The SQL being executed was: SELECT * FROM
sc_cours
a
INNER JOIN sc_matieres
b
ON a.idMat = b.idMat INNER JOIN sc_matieres
b
ON a.idMat = b.idMat– Badara
Nov 21 '18 at 13:43
add a comment |
2 Answers
2
active
oldest
votes
From error you can see that you have two inner joins exact same. Define relation in model and than just do ->innerJoin('nameOfRelation');
There's already the relation in the model public function getMat() { return $this->hasOne(ScMatieres::className(), ['idMat' => 'idMat']); } but if i do ->innerJoin('classe) , it wil take the nameofRelation as a table ... Base table or view not found: 1146 La table 's'coolapp.classe' n'existe pas The SQL being executed was: SELECT * FROMsc_cours
a
INNER JOINclasse
– Badara
Nov 21 '18 at 23:53
whyclasse
if your relation name isgetMat()
then your relation should bemat
and it would take from tabel defined inScMatieres
– Borisa Eric
Nov 22 '18 at 9:56
sorry it's me who do an error here (it just because i do the same with another tablessc_classes
, sorry for that again ...) but unfortunately even if i writemat
, i get the same error, telling me thatthe table mat does not exist
– Badara
Nov 22 '18 at 11:49
No need for saying sorry, we are here to help each other. It should not get table name from relation, instead it should take table name from ScMatieres. Can you provide all code related to this issue.
– Borisa Eric
Nov 22 '18 at 13:17
ok i've posted all the code
– Badara
Nov 22 '18 at 15:15
add a comment |
Ok, with ->ScCours::find()->join('mat')
I've this error Missing argument 2 for yiidbQuery::join()
, But Thank you, you put me on the right path because it works when i try with with
, so i've just done ->ScCours::find()->with('mat')
. That's worked now, thank you again Borisa Eric for your precious help !
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53404609%2fyii2-syntax-error-or-access-violation-1066-not-unique-table%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
From error you can see that you have two inner joins exact same. Define relation in model and than just do ->innerJoin('nameOfRelation');
There's already the relation in the model public function getMat() { return $this->hasOne(ScMatieres::className(), ['idMat' => 'idMat']); } but if i do ->innerJoin('classe) , it wil take the nameofRelation as a table ... Base table or view not found: 1146 La table 's'coolapp.classe' n'existe pas The SQL being executed was: SELECT * FROMsc_cours
a
INNER JOINclasse
– Badara
Nov 21 '18 at 23:53
whyclasse
if your relation name isgetMat()
then your relation should bemat
and it would take from tabel defined inScMatieres
– Borisa Eric
Nov 22 '18 at 9:56
sorry it's me who do an error here (it just because i do the same with another tablessc_classes
, sorry for that again ...) but unfortunately even if i writemat
, i get the same error, telling me thatthe table mat does not exist
– Badara
Nov 22 '18 at 11:49
No need for saying sorry, we are here to help each other. It should not get table name from relation, instead it should take table name from ScMatieres. Can you provide all code related to this issue.
– Borisa Eric
Nov 22 '18 at 13:17
ok i've posted all the code
– Badara
Nov 22 '18 at 15:15
add a comment |
From error you can see that you have two inner joins exact same. Define relation in model and than just do ->innerJoin('nameOfRelation');
There's already the relation in the model public function getMat() { return $this->hasOne(ScMatieres::className(), ['idMat' => 'idMat']); } but if i do ->innerJoin('classe) , it wil take the nameofRelation as a table ... Base table or view not found: 1146 La table 's'coolapp.classe' n'existe pas The SQL being executed was: SELECT * FROMsc_cours
a
INNER JOINclasse
– Badara
Nov 21 '18 at 23:53
whyclasse
if your relation name isgetMat()
then your relation should bemat
and it would take from tabel defined inScMatieres
– Borisa Eric
Nov 22 '18 at 9:56
sorry it's me who do an error here (it just because i do the same with another tablessc_classes
, sorry for that again ...) but unfortunately even if i writemat
, i get the same error, telling me thatthe table mat does not exist
– Badara
Nov 22 '18 at 11:49
No need for saying sorry, we are here to help each other. It should not get table name from relation, instead it should take table name from ScMatieres. Can you provide all code related to this issue.
– Borisa Eric
Nov 22 '18 at 13:17
ok i've posted all the code
– Badara
Nov 22 '18 at 15:15
add a comment |
From error you can see that you have two inner joins exact same. Define relation in model and than just do ->innerJoin('nameOfRelation');
From error you can see that you have two inner joins exact same. Define relation in model and than just do ->innerJoin('nameOfRelation');
answered Nov 21 '18 at 16:50
Borisa EricBorisa Eric
33916
33916
There's already the relation in the model public function getMat() { return $this->hasOne(ScMatieres::className(), ['idMat' => 'idMat']); } but if i do ->innerJoin('classe) , it wil take the nameofRelation as a table ... Base table or view not found: 1146 La table 's'coolapp.classe' n'existe pas The SQL being executed was: SELECT * FROMsc_cours
a
INNER JOINclasse
– Badara
Nov 21 '18 at 23:53
whyclasse
if your relation name isgetMat()
then your relation should bemat
and it would take from tabel defined inScMatieres
– Borisa Eric
Nov 22 '18 at 9:56
sorry it's me who do an error here (it just because i do the same with another tablessc_classes
, sorry for that again ...) but unfortunately even if i writemat
, i get the same error, telling me thatthe table mat does not exist
– Badara
Nov 22 '18 at 11:49
No need for saying sorry, we are here to help each other. It should not get table name from relation, instead it should take table name from ScMatieres. Can you provide all code related to this issue.
– Borisa Eric
Nov 22 '18 at 13:17
ok i've posted all the code
– Badara
Nov 22 '18 at 15:15
add a comment |
There's already the relation in the model public function getMat() { return $this->hasOne(ScMatieres::className(), ['idMat' => 'idMat']); } but if i do ->innerJoin('classe) , it wil take the nameofRelation as a table ... Base table or view not found: 1146 La table 's'coolapp.classe' n'existe pas The SQL being executed was: SELECT * FROMsc_cours
a
INNER JOINclasse
– Badara
Nov 21 '18 at 23:53
whyclasse
if your relation name isgetMat()
then your relation should bemat
and it would take from tabel defined inScMatieres
– Borisa Eric
Nov 22 '18 at 9:56
sorry it's me who do an error here (it just because i do the same with another tablessc_classes
, sorry for that again ...) but unfortunately even if i writemat
, i get the same error, telling me thatthe table mat does not exist
– Badara
Nov 22 '18 at 11:49
No need for saying sorry, we are here to help each other. It should not get table name from relation, instead it should take table name from ScMatieres. Can you provide all code related to this issue.
– Borisa Eric
Nov 22 '18 at 13:17
ok i've posted all the code
– Badara
Nov 22 '18 at 15:15
There's already the relation in the model public function getMat() { return $this->hasOne(ScMatieres::className(), ['idMat' => 'idMat']); } but if i do ->innerJoin('classe) , it wil take the nameofRelation as a table ... Base table or view not found: 1146 La table 's'coolapp.classe' n'existe pas The SQL being executed was: SELECT * FROM
sc_cours
a
INNER JOIN classe
– Badara
Nov 21 '18 at 23:53
There's already the relation in the model public function getMat() { return $this->hasOne(ScMatieres::className(), ['idMat' => 'idMat']); } but if i do ->innerJoin('classe) , it wil take the nameofRelation as a table ... Base table or view not found: 1146 La table 's'coolapp.classe' n'existe pas The SQL being executed was: SELECT * FROM
sc_cours
a
INNER JOIN classe
– Badara
Nov 21 '18 at 23:53
why
classe
if your relation name is getMat()
then your relation should be mat
and it would take from tabel defined in ScMatieres
– Borisa Eric
Nov 22 '18 at 9:56
why
classe
if your relation name is getMat()
then your relation should be mat
and it would take from tabel defined in ScMatieres
– Borisa Eric
Nov 22 '18 at 9:56
sorry it's me who do an error here (it just because i do the same with another tables
sc_classes
, sorry for that again ...) but unfortunately even if i write mat
, i get the same error, telling me that the table mat does not exist
– Badara
Nov 22 '18 at 11:49
sorry it's me who do an error here (it just because i do the same with another tables
sc_classes
, sorry for that again ...) but unfortunately even if i write mat
, i get the same error, telling me that the table mat does not exist
– Badara
Nov 22 '18 at 11:49
No need for saying sorry, we are here to help each other. It should not get table name from relation, instead it should take table name from ScMatieres. Can you provide all code related to this issue.
– Borisa Eric
Nov 22 '18 at 13:17
No need for saying sorry, we are here to help each other. It should not get table name from relation, instead it should take table name from ScMatieres. Can you provide all code related to this issue.
– Borisa Eric
Nov 22 '18 at 13:17
ok i've posted all the code
– Badara
Nov 22 '18 at 15:15
ok i've posted all the code
– Badara
Nov 22 '18 at 15:15
add a comment |
Ok, with ->ScCours::find()->join('mat')
I've this error Missing argument 2 for yiidbQuery::join()
, But Thank you, you put me on the right path because it works when i try with with
, so i've just done ->ScCours::find()->with('mat')
. That's worked now, thank you again Borisa Eric for your precious help !
add a comment |
Ok, with ->ScCours::find()->join('mat')
I've this error Missing argument 2 for yiidbQuery::join()
, But Thank you, you put me on the right path because it works when i try with with
, so i've just done ->ScCours::find()->with('mat')
. That's worked now, thank you again Borisa Eric for your precious help !
add a comment |
Ok, with ->ScCours::find()->join('mat')
I've this error Missing argument 2 for yiidbQuery::join()
, But Thank you, you put me on the right path because it works when i try with with
, so i've just done ->ScCours::find()->with('mat')
. That's worked now, thank you again Borisa Eric for your precious help !
Ok, with ->ScCours::find()->join('mat')
I've this error Missing argument 2 for yiidbQuery::join()
, But Thank you, you put me on the right path because it works when i try with with
, so i've just done ->ScCours::find()->with('mat')
. That's worked now, thank you again Borisa Eric for your precious help !
answered Nov 23 '18 at 19:21
BadaraBadara
11
11
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53404609%2fyii2-syntax-error-or-access-violation-1066-not-unique-table%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Try this - $query = new yiidbQuery(); $query->select(['a.*','b.*']) ->from(['a' => 'sc_cours']) ->innerJoin(['b' => 'sc_matieres'],'a.idMat = b.idMat') ->all();
– Gru
Nov 21 '18 at 4:54
I have the same error, but this time on the aliases Syntax error or access violation: 1066 Table/alias: 'b' non unique The SQL being executed was: SELECT * FROM
sc_cours
a
INNER JOINsc_matieres
b
ON a.idMat = b.idMat INNER JOINsc_matieres
b
ON a.idMat = b.idMat– Badara
Nov 21 '18 at 13:43