I got 2 different databases and 2 tables
Here’s Table.1
:
Table.1
username | date | phone number | rank |
user1 | 2021 | xxx xxx xxxx | ALL |
user2 | 2021 | xxx xxx xxxx | river, domain, CW, road|
user3 | 2021 | xxx xxx xxxx | river, CW |
user4 | 2021 | xxx xxx xxxx | owl, gold, moon, DD |
and there’s Table.2
Table 2
rank | CODE | locations | contain | price | exp |
river | WT-2 | xxx xxx xx| JRCOW20 | 500.00 | --- |
road | CC2W | xxx xxx xx| ------- | 200.00 | --- |
owl | 568T | xxx xxx xx| JCCW120 | 300.00 | --- |
owl | CCCD | xxx xxx xx| CWFGTFF | 100.00 | --- |
CW | PTR1 | xxx xxx xx| 09WWKAL | 100.00 | --- |
CW | 1RRW | xxx xxx xx| WFR4444 | 300.00 | --- |
but the users ask for all items separately according
searching the ranking.values using Table.2
and compare with Table.1
How can I use Sql command having the result when something like :
login as user2
so I would get
rank | CODE | locations | contain | price | exp |
river | WT-2 | xxx xxx xx| JRCOW20 | 500.00 | --- |
road | CC2W | xxx xxx xx| ------- | 200.00 | --- |
CW | PTR1 | xxx xxx xx| 09WWKAL | 100.00 | --- |
CW | 1RRW | xxx xxx xx| WFR4444 | 300.00 | --- |
but if when the user login as user4
than I would get
rank | CODE | locations | contain | price | exp |
owl | 568T | xxx xxx xx| JCCW120 | 300.00 | --- |
owl | CCCD | xxx xxx xx| CWFGTFF | 100.00 | --- |
I try to figure out the SQL parts and the following works has been tested; but no luck:
SELECT
*
FROM
[DB-1].[Table.1]
JOIN
[DB-2].[Table.2]
WHERE
[DB-2].[Table.2]
IN
(
[DB-1].[Table.1].[Col-Rank]
)
but so far some of them come out either empty, of just output single result as:
login as *user2* result:
user2 | 2021 | xxx xxx xxxx | river, domain, CW, road|
river | WT-2 | xxx xxx xxxx | JRCOW20 | 500.00 | --- |
or
login as *user4* result:
user4 | 2021 | xxx xxx xxxx | owl, gold, moon, DD |
owl | 568T | xxx xxx xxxx | JCCW120 | 300.00 | --- |
I don’t understand where should I change the detail and honestly this is very new problem to me
currently using MySQl 7.4, by PhpMyAdmin also PHP 7.4
There could be a lot informal statement come out of PhpMyAdmin; still trying to make everything work; any help would be appreciate!
Below are the questions I have tried:
sql-query-multiple-records-against-one-column-value-need-to-compare-another
mysql-check-if-a-column-has-values-based-on-another-column
mysql-how-to-check-for-a-value-in-all-columns
Advertisement
Answer
I think this just works fine, according of the WHERE … IN ();
also the results of rank comes from another application, honestly I haven’t had the clue to ask for it with another team
signal
as Table.2
I used same method as
MySQL query finding values in a comma separated string
SELECT
*
FROM
`signal`
WHERE
`rank` IN(
'river',
'domain',
'CW',
'road'
);
but I work it in the PHP file, so that’s why it may look won’t work as expect
PHP file
$sig = str_replace(',' , '','', $_SESSION['sig']);
or
$sig = str_replace(',' , '","', $_SESSION['sig']);